How about (and yes, you are limited to 10 titles, though with split char/rtf codes etc. you can make more): data have; attrib Name DOB Disease Classification status MMR1 TDate MMR2 Date PCR result Serology result format=$20.; infile datalines delimiter=',' missover; input Name $ DOB $ Disease $ Classification $ status $ MMR1 $ TDate $ MMR2 $ Date $ PCR $ result $ Serology $ result; datalines; John Doe,10/25/1986,Measles,Skin,Confirmed,10/25/1987,10/25/1994,Positive,Positive,01/01/2013,AAA,1234,Positive,112233 John Doe,10/25/1986,Measles,Skin,Confirmed,10/25/1987,10/25/1994,Positive,Negative,02/01/2013,ABA,44234,Positive,445566 ; run; proc sql; create table LOOP as select distinct NAME, DOB, DISEASE, CLASSIFICATION, STATUS, MMR1 from WORK.HAVE; quit; ods _all_ close; ods pdf file="s:\temp\rob\test.pdf" style=statistical; data _null_; set loop; call execute('title1 j=l "Name: '||strip(name)||'"; title2 j=l "DOB: '||strip(dob)||'"; title3 j=l "Disease: '||strip(disease)||'"; title4 j=l "Classification: '||strip(classification)||'"; title5 j=l "Status: '||strip(status)||'"; title6 j=l "MMR1: '||strip(mmr1)||'";'); call execute('proc print data=have (where=(name="'||strip(name)||'")) noobs; var tdate mmr2 date pcr result serology; run;'); run; ods _all_ close;
... View more