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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.