Hi Community, I need your help in achieving this case using PROC REPORT and output to ODS PDF . I have 2 PROC Reports lets call PR1 and PR2 PR1 - contains Header and has detailed data PR2 - No Header and has summarized data of PR1(Single row) Problem is that: When PR1 page fills page1 completely, PR2 prints on a new page with NO HEADERS, where as the requirement is that even if moves to next page, PR1 Headers should be intact, so that users can understand that summarized values are meant for those columns. How can i achieve this, so that i can have PR1 header to be printed(in next page) whenever PR2 moves to the next page. Sample Report: Product sales (PR1) a 23 b 24 c 23 ... ... ...................PR2 Total 70 when PR2 is moved down to next page i need Headers of PR1, Which tell users that it is the total of PR1 report. ods listing close;
options orientation=portrait topmargin=.05in bottommargin=.05in leftmargin=.4in rightmargin=.01in nonumber nodate;
ods pdf file="W:\Project\test\Task\output\PR_REPORT.pdf" notoc style=report;
/*Sample data*/
data dummy;
keep regionname productline productname price1 price2 date;
set sashelp.pricedata;
run;
/*Inserting Dummy records for Region1, so that PR2 prints on 2nd Page*/
proc sql;
insert into dummy values ("1jan1998"d,52.4, 52.3, "Region1", "Line1", "Product1");
insert into dummy values ("2jan1998"d,53.4, 52.3, "Region1", "Line1", "Product1");
insert into dummy values ("3jan1998"d,54.4, 52.3, "Region1", "Line1", "Product1");
insert into dummy values ("4jan1998"d,55.4, 52.3, "Region1", "Line1", "Product1");
insert into dummy values ("5jan1998"d,56.4, 52.3, "Region1", "Line1", "Product1");
..
..
..
..
;quit;
/*Sorting */
proc sort data=dummy;
by regionname productline productname;
run;
/*Filtering only for 1 Region*/
data dummy;
set dummy;
where regionname="Region1";
run;
/*PR1*/
ods escapechar='~';
proc report data=work.dummy
style(column)=[color=black fontsize=6pt borderspacing=0 borderwidth=0 fontfamily=courier textalign=left ASIS=ON]
style(header)=[color=black fontsize=6pt background=white fontfamily=courier textalign=left borderbottomwidth=1px borderbottomstyle=solid borderbottomcolor=black borderleftwidth=0 borderrightwidth=0]
style(report)=[ASIS=ON bordercolor=white borderwidth=0 fontfamily=courier textalign=left fontsize=6pt rules=none frame=void cellspacing=0 cellpadding=4]
nowindows headskip;
column hierarchy productLine productname date price1 price2;
define hierarchy / group ;
define productLine / group noprint ;
define productname/group noprint ;
define price1 / analysis ;
define price2 / analysis ;
define date/display;
define line / display ;
define pge / order ;
where year(date)=1998;
run;
/*Creating Aggregate table for PR2*/
proc sql;
create table agg_dummy as
select regionname,productline, productname, sum(price1) as sum_price1, sum(price2) as sum_price2
from work.dummy
group by regionname,productline, productname
;quit;
/*PR2*/
ods pdf startpage=no;
proc report data=work.agg_dummy
style(column)=[color=black fontsize=6pt borderspacing=0 borderwidth=0 fontfamily=courier textalign=left ASIS=ON]
style(header)=[color=black fontsize=6pt background=white fontfamily=courier textalign=left borderbottomwidth=1px borderbottomstyle=solid borderbottomcolor=black borderleftwidth=0 borderrightwidth=0]
style(report)=[ASIS=ON bordercolor=white borderwidth=0 fontfamily=courier textalign=left fontsize=6pt rules=none frame=void cellspacing=0 cellpadding=4]
nowd nowindows headskip noheader;
column regionname productline productname sum_price1 sum_price2 ;
define regionname / group ;
define productLine / group ;
define productname/group ;
define sum_price1 / analysis ;
define sum_price2 / analysis ;
run;
ods pdf close;
ods _all_ close; Let me know if you need more information. Thank you 🙂
... View more