Hi: I generally don't read XLSX files. If your data are small enough, you might write a DATA step program to read the data as DATALINES. However, I do have some other comments on your code: 1) not sure what you are trying to accomplish with WRAP in the TITLE statement. It is not an option http://support.sas.com/documentation/cdl/en/lestmtsref/69738/HTML/default/viewer.htm#p10gcmrmf83iaxn1ilrx4pra969n.htm 2) LS=256, HEADLINE, etc are LISTING only options that do not apply to ODS PDF. PDF uses the TOPMARGIN, BOTTOMMARGIN, RIGHTMARGIN and LEFTMARGIN options to control the width of text allowed on the page. 3) Why bother with STYLE=LISTING if you are overriding everything with the Calibri font? 4) your code uses formats for gender and married, but no one can run this code because you did not provide the formats 5) I don't know what you mean by "first row data" -- if you did not have such wide widths on your columns, all of the data would fit on one row and would not wrap. 6) why bother specifying rules=none every place when using the simple STYLE=JOURNAL would get rid of all the interior Table lines for you. 7) not sure why you have ALL your report items defined as GROUP 😎 not sure why you have a date format of mmddyy10. for case_number variable when the case_number variable seems to be 12345678 -- which isn't a date. 9) For STYLE(HEADER) on the PROC REPORT statement, it appears that you have conflicting attribute values for some of the border settings. I see BORDERBOTTOMWIDTH specified twice and the values are different. I am not sure what you mean by "end of line marker" in question #2. ODS LISTING might respect a line of all underlines, but ODS PDF will not produce what you want. The concept of "end of line marker" is typically something you find discussed for data files -- end of record marker and end of file marker. The Journal Style will put a line underneath the table for you at the end of the table automatically. I don't understand your question #3 at all. My recommendation is that you get the other stuff fixed/working, possibly explore the Journal style and then see how close you come to the report you want. Here's an example of what JOURNAL style output would look like for a large number of clients. Simplified code is below.
cynthia
data demo;
infile datalines dlm=',' dsd;
input cust_name $ sex $ marital $ case_number lot_num OI_Date : mmddyy.
client_name $ client_num;
return;
datalines;
john,Male,married,12345678,1234,8/19/2016,john,1
john,Male,married,12345678,1234,8/19/2016,wilson,2
john,Male,married,12345678,1234,8/19/2016,mary,3
john,Male,married,12345678,1234,8/19/2016,nirvana,4
john,Male,married,12345678,5678,8/19/2016,gatsy,5
john,Male,married,12345678,5678,8/19/2016,cassy,6
john,Male,married,12345678,5678,8/19/2016,cassida,7
john,Male,married,12345678,5678,8/19/2016,tim,8
john,Male,married,12345678,5678,8/19/2016,rob,9
john,Male,married,12345678,5678,8/19/2016,alan,10
john,Male,married,12345678,5678,8/19/2016,barb,11
john,Male,married,12345678,5678,8/19/2016,carla,12
john,Male,married,12345678,5678,8/19/2016,dave,13
john,Male,married,12345678,5678,8/19/2016,edward,14
john,Male,married,12345678,5678,8/19/2016,fran,15
john,Male,married,12345678,5678,8/19/2016,gina,16
john,Male,married,12345678,5678,8/19/2016,harry,17
john,Male,married,12345678,5678,8/19/2016,iona,18
john,Male,married,12345678,5678,8/19/2016,jack,19
john,Male,married,12345678,5678,8/19/2016,kathy,20
john,Male,married,12345678,5678,8/19/2016,laura,21
john,Male,married,12345678,5678,8/19/2016,michael,22
john,Male,married,12345678,5678,8/19/2016,nick,23
john,Male,married,12345678,5678,8/19/2016,olivia,24
john,Male,married,12345678,5678,8/19/2016,peter,25
john,Male,married,12345678,5678,8/19/2016,quentin,26
john,Male,married,12345678,5678,8/19/2016,rob,27
john,Male,married,12345678,5678,8/19/2016,sarah,28
john,Male,married,12345678,5678,8/19/2016,tomas,29
john,Male,married,12345678,5678,8/19/2016,ulrich,30
;
run;
ods _all_ close;
title;
proc sort data=demo;
by lot_num cust_name;
run;
ods pdf file='c:\temp\nowidths_journal.pdf' style=journal;
TITLE1 bold f= Calibri h=14pt j=c "REPORT: LOT #byval(lot_num)" ;
TITLE3 " ";
proc report nofs data = demo nowd spanrows split='~' missing;
by lot_num ;
columns cust_name sex marital case_number OI_Date client_name client_num ;
define cust_name /group page 'CUST NAME' ;
define sex / group 'GENDER' ;
define marital / group 'MARITAL' ;
define case_number / order 'CUST NUM' ;
define OI_Date/ display 'TRANS DATE' format=mmddyy10. ;
define client_name / display 'CLIENT NAME' ;
define client_num / display 'CLIENT NUM' ;
break after cust_name / PAGE ;
run;
ods pdf close;
... View more