Tinkinc
Tinkinc

Reputation: 454

SAS Proc Report Title Error

I have an issue where by the do loop creates my reports however the title page where the macro is listed doesn't reflect the correct naming convention each time. It works for each of the bookmarks in PDF as well as the proc report itself. However the titles don't reflect correctly.

%macro PDF_T2(year=,  age= );

proc sql noprint;
select distinct region,  bh_type
      into :region1 - :region14, :bh_type1 -  :bh_type14
      from table2_IP
;
quit;

/*%put &region1 &region2;*/
/*%put &bh_type1 &bh_type2;*/

ods escapechar '^';
ods pdf file="C:\PDFS\Table2.pdf" pdftoc=2 style=Custom;

options orientation=landscape missing=' '

topmargin=.25in 
bottommargin=.25in
leftmargin=.25in rightmargin=.25in ;

ods proclabel " Inpatient Analysis By Plan ";


%do i=1 %to 4;


TITLE  "^{style [JUST= C ]Table 2. Inpatient Utilization By Plan,}";
TITLE2 "^{style [JUST= C ]&&region&i.  }" ;
Title3 "^{style [JUST= C ]Adult (21 to 64)}";
Title4 "^{style [JUST= C ]&&bh_type&i. Analysis}"  ;

PROC REPORT DATA =  Table2_IP contents="&&bh_type&i. Table: Inpatient`enter code here`

Upvotes: 0

Views: 255

Answers (1)

Quentin
Quentin

Reputation: 6378

I would try making sure that you are using %local macro variables. If you have global macro variables floating around that could cause some surprising results.

I would also turn on MPRINT and look at the log to see what code is being generated. It will show the TITLE statements that the macro is generating.

Titles do not clear themselves, but every time your TITLE statement executes it will clear any existing titles.

I modified your code a bit to work on sashelp.prdsale, and it seems fine:

%macro titletest(dummy);
%local i region1 region2;

proc sql noprint;
select distinct region
      into :region1 - :region2
      from sashelp.prdsale
;
quit;

%put region1=&region1 region2=&region2;

%do i=1 %to 2;
  title1 "Results for &&region&i";
  proc print data=sashelp.prdsale;
    where region="&&region&i";
  run;
  title1;
%end;

%mend;

options mprint;
%titletest()

Upvotes: 1

Related Questions