I tried to put the report title for each of the proc report, but it seems that the different titles just did not appear at the right place. Anyone can help? Thanks.
DATA T1;
SET SASHELP.CARS;
IF ORIGIN EQ 'Asia' AND TYPE EQ 'SUV';
KEEP MAKE MODEL TYPE ORIGIN;
RUN;
DATA T2;
SET SASHELP.CARS;
IF MAKE EQ 'Acura';
KEEP MAKE MODEL TYPE ORIGIN INVOICE;
RUN;
DATA T3;
SET SASHELP.CARS;
IF INVOICE GE 100000;
KEEP MAKE MODEL TYPE ORIGIN INVOICE;
RUN;
%LET OUTPATH = C:\test\test.PDF;
OPTIONS ORIENTATION=LANDSCAPE PAPERSIZE=A5;
OPTIONS NODATE;
OPTIONS LINESIZE=130 PAGESIZE=60 CENTER;
ODS PDF FILE="&OUTPATH" STARTPAGE=NO;
PROC REPORT DATA=T1;
TITLE1 'SUV from Asia';
COLUMN MAKE MODEL TYPE ORIGIN;
DEFINE MAKE / DISPLAY 'Brand';
DEFINE MODEL / DISPLAY 'Model';
DEFINE TYPE / DISPLAY 'Type';
DEFINE ORIGIN / DISPLAY 'Origin';
RUN;
PROC REPORT DATA=T2;
TITLE2 'Car Price by Acura';
COLUMN MAKE MODEL TYPE ORIGIN;
DEFINE MAKE / DISPLAY 'Brand';
DEFINE MODEL / DISPLAY 'Model';
DEFINE TYPE / DISPLAY 'Type';
DEFINE ORIGIN / DISPLAY 'Origin';
DEFINE INVOICE / DISPLAY 'Price';
RUN;
PROC REPORT DATA=T3;
TITLE3 'Car Price over 100k';
COLUMN MAKE MODEL TYPE ORIGIN INVOICE;
DEFINE MAKE / DISPLAY 'Brand';
DEFINE MODEL / DISPLAY 'Model';
DEFINE TYPE / DISPLAY 'Type';
DEFINE ORIGIN / DISPLAY 'Origin';
DEFINE INVOICE / DISPLAY 'Price';
RUN;
ODS PDF CLOSE;
ODS LISTING;
What do you mean by "but it seems that the different titles just did not appear at the right place."?
What are your expectations? Do you want to have text "SUV from Asia" before table one, and then _only_ the 'Car Price by Acura' before table two?
B-)
Try this:
DATA T1;
SET SASHELP.CARS;
IF ORIGIN EQ 'Asia' AND TYPE EQ 'SUV';
KEEP MAKE MODEL TYPE ORIGIN;
RUN;
DATA T2;
SET SASHELP.CARS;
IF MAKE EQ 'Acura';
KEEP MAKE MODEL TYPE ORIGIN INVOICE;
RUN;
DATA T3;
SET SASHELP.CARS;
IF INVOICE GE 100000;
KEEP MAKE MODEL TYPE ORIGIN INVOICE;
RUN;
%LET OUTPATH = %sysfunc(pathname(work))\test.PDF;
OPTIONS ORIENTATION=LANDSCAPE PAPERSIZE=A5;
OPTIONS NODATE;
OPTIONS LINESIZE=130 PAGESIZE=60 CENTER;
ODS PDF FILE="&OUTPATH" STARTPAGE=NO;
PROC REPORT DATA=T1;
TITLE 'SUV from Asia';
COLUMN MAKE MODEL TYPE ORIGIN;
DEFINE MAKE / DISPLAY 'Brand';
DEFINE MODEL / DISPLAY 'Model';
DEFINE TYPE / DISPLAY 'Type';
DEFINE ORIGIN / DISPLAY 'Origin';
RUN;
ODS PDF STARTPAGE=NOW;
PROC REPORT DATA=T2;
TITLE 'Car Price by Acura';
COLUMN MAKE MODEL TYPE ORIGIN;
DEFINE MAKE / DISPLAY 'Brand';
DEFINE MODEL / DISPLAY 'Model';
DEFINE TYPE / DISPLAY 'Type';
DEFINE ORIGIN / DISPLAY 'Origin';
DEFINE INVOICE / DISPLAY 'Price';
RUN;
ODS PDF STARTPAGE=NOW;
PROC REPORT DATA=T3;
TITLE 'Car Price over 100k';
COLUMN MAKE MODEL TYPE ORIGIN INVOICE;
DEFINE MAKE / DISPLAY 'Brand';
DEFINE MODEL / DISPLAY 'Model';
DEFINE TYPE / DISPLAY 'Type';
DEFINE ORIGIN / DISPLAY 'Origin';
DEFINE INVOICE / DISPLAY 'Price';
RUN;
ODS PDF CLOSE;
ODS LISTING;
Bart
One more thing,
may be you need "startpage=now" option?
ODS PDF STARTPAGE=NOW;
PROC REPORT DATA=T2;
TITLE2 'Car Price by Acura';
...
RUN;
ODS PDF STARTPAGE=NOW;
PROC REPORT DATA=T3;
TITLE3 'Car Price over 100k';
...
RUN;
B-)
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Lock in the best rate now before the price increases on April 1.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.