That is really weird. Maybe you need buy a ticket to sas support.
About your last question, you can get rid of "Table1...." by using option "contents=" of PROC REPORT.
The attachment is the rtf file I got and no problem as you described.
DATA AAA; SET SASHELP.CARS; RUN; proc sort data=AAA; by Make; run; data AAA; set AAA; PAGE_NO = FLOOR((_n_-1)/15)+1; run; ODS RTF(ID=INDA) FILE= "c:\temp\A.rtf" CONTENTS=YES STARTPAGE=YES TOC_DATA; PROC REPORT DATA=AAA(obs=100) contents=' '; COLUMNS PAGE_NO Make Model Type Origin DriveTrain MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway; DEFINE PAGE_NO / ORDER NOPRINT contents=""; DEFINE Make / ORDER NOPRINT; DEFINE Model / DISPLAY ID STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE Type / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE Origin / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE DriveTrain / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE MSRP / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE Invoice / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN} contents="" PAGE; DEFINE EngineSize / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE Cylinders / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE Horsepower / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE MPG_City / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE MPG_Highway /DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; COMPUTE BEFORE Make; LINE @1 " "; LINE @1 Make $16.; LINE @1 " "; ENDCOMP; break after page_no / page contents=" "; compute after _page_; line "Some text"; line "Some other text"; endcomp; RUN; ods text='End of Table'; ODS RTF(ID=INDA) CLOSE;
Ha. Try this one :
%let n=20; * a page has 20 records ; DATA AAA; SET SASHELP.CARS(obs=100); RUN; proc sort data=AAA; by Make; run; data AAA; set AAA; by Make; if first.Make then n=0; n+1; if first.Make or mod(n,&n.)=1 then PAGE_NO+1; drop n; run; ODS RTF(ID=INDA) FILE= "c:\temp\A.rtf" CONTENTS=YES STARTPAGE=YES TOC_DATA; PROC REPORT DATA=AAA contents=''; COLUMNS Make PAGE_NO Model Type Origin DriveTrain MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway; DEFINE Make / ORDER contents=""; DEFINE PAGE_NO / ORDER NOPRINT contents=""; DEFINE Model / DISPLAY ID STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE Type / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE Origin / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE DriveTrain / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE MSRP / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE Invoice / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN} contents="" PAGE; DEFINE EngineSize / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE Cylinders / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE Horsepower / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE MPG_City / DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; DEFINE MPG_Highway /DISPLAY STYLE(COLUMN)={CELLWIDTH=1IN}; COMPUTE BEFORE _page_; LINE @1 " "; LINE @1 Make $16.; LINE @1 " "; ENDCOMP; break before page_no / page contents=""; compute after _page_; line "Some text"; line "Some other text"; endcomp; RUN; ods text='End of Table'; ODS RTF(ID=INDA) CLOSE;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.