The SAS Output Delivery System and reporting techniques

Re: Proc Report too long/too many rows, will not print

Reply
Contributor
Posts: 27

Re: Proc Report too long/too many rows, will not print

Thanks for letting me know I put this in the wrong place. Any idea where the "right" place is? 

Occasional Contributor
Posts: 6

Re: Proc Report too long/too many rows, will not print

Hi, can you please repost your question? Seems like it is gone.

Contributor
Posts: 27

Re: Proc Report too long/too many rows, will not print

Posted in reply to Aboveland

I have a proc report portion of an ODS PDF report that is tucked into a Stored Process that runs from Visual Analytics. The report will not render when the row count is above 60 rows. I can program a variable to force two pages and create two tables, one with outobs=50 and another with the "rest" of the results, but there has to be a simpler way. Is there no Break option or Wrap option that will automatically wrap the rest of the results onto the next page?

 

here is the proc report....

/******************** Test History Header ********************/
options missing=' ';

ods layout end;
ods pdf startpage=now;
ods pdf startpage=yes;
ods layout absolute x=0.0cm y=0.0cm;

%dcps_logo_page_2;


/***   Title   ***/
ods region x=3.25cm y=0.25cm;
ods pdf text="^S={font_size=14pt font_face=Calibri color=grey just=l}Duval County Public Schools Transcript";

/*** header/demographic information ***/
ods region x=3.25cm y=0.75cm;
proc report data=work.demographics split='~' missing spanrows
style(header)={font_face=Helvetica font_size=5pt height=5pt just=c vjust=m background=#D3D3D3 font_weight=bold };
column (('ID' DCPS_Student_ID)
('Student Name' student_name )
('Grade' grade_level )
('Address' address_line_1 )
('City, State Zip' address_line_2 )
('Withdrawal Status' withdraw_status));
define dcps_student_id / display '' style={cellspacing=0 cellheight=5pt just=c vjust=m font_face="Helvetica" fontsize=5pt};
define student_name / display '' style={cellspacing=0 cellheight=5pt just=c vjust=m font_face="Helvetica" fontsize=5pt};
define grade_level / display '' style={cellspacing=0 cellheight=5pt just=c vjust=m font_face="Helvetica" fontsize=5pt};
define address_line_1 / display '' style={cellspacing=0 cellheight=5pt just=c vjust=m font_face="Helvetica" fontsize=5pt};
define address_line_2 / display '' style={cellspacing=0 cellheight=5pt just=c vjust=m font_face="Helvetica" fontsize=5pt};
define withdraw_status / display '' style={cellspacing=0 cellheight=5pt just=c vjust=m font_face="Helvetica" fontsize=5pt};
run;

/*** Test History ***/
ods region x=1.0cm y=2.40cm;
proc report data=work.test_history split='~' missing spanrows
style(header)={font_face="Helvetica" font_size=5pt height=5pt just=c vjust=m background=#D3D3D3 font_weight=bold };
column ((seqno)
('Grade' grade_level)
('Test' test_date test_code test_name)
('Subject' subject_code subject_desc)
('Test Score(s)' AL SS LX PA PF RS TS));
by seqno;
define seqno / group noprint;
define grade_level / group 'Level' style={cellspacing=0 cellheight=4pt cellwidth=0.80cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define test_date / group 'Date' style={cellspacing=0 cellheight=4pt cellwidth=1.00cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define test_code / group 'Code' style={cellspacing=0 cellheight=4pt cellwidth=0.80cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define test_name / group 'Name' style={cellspacing=0 cellheight=4pt cellwidth=3.50cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define subject_code / display 'Code' style={cellspacing=0 cellheight=4pt cellwidth=0.75cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define subject_desc / display 'Description' style={cellspacing=0 cellheight=4pt cellwidth=4.50cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define AL / display 'AL' style={cellspacing=0 cellheight=4pt cellwidth=0.65cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define SS / display 'SS' style={cellspacing=0 cellheight=4pt cellwidth=0.65cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define LX / display 'LX' style={cellspacing=0 cellheight=4pt cellwidth=0.65cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define PA / display 'PA' style={cellspacing=0 cellheight=4pt cellwidth=0.65cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define PF / display 'PF' style={cellspacing=0 cellheight=4pt cellwidth=0.65cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define RS / display 'RS' style={cellspacing=0 cellheight=4pt cellwidth=0.65cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
define TS / display 'TS' style={cellspacing=0 cellheight=4pt cellwidth=0.65cm just=c vjust=m font_face="Helvetica" fontsize=4pt};
compute grade_level;
if (mod(seqno,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute test_date;
if (mod(seqno,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute test_code;
if (mod(seqno,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute test_name;
if (mod(seqno,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute subject_code;
count+1;
if (mod(count,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute subject_desc;
if (mod(count,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute AL;
if (mod(count,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute SS;
if (mod(count,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute LX;
if (mod(count,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute PA;
if (mod(count,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute PF;
if (mod(count,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute RS;
if (mod(count,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
compute TS;
if (mod(count,2)) then do;
call define(_col_,'style','style={background=#F5F5F5}');
end;
endcomp;
title1 j=c height=6pt bold lspace=1pt 'Test History';
run;

title; /* clear graph title(s), if there is(are) one(any) from pervious iterations */
footnote; /* clear graph footnote(s), if there is(are) one(any) from pervious iterations */
ods pdf nobookmarkgen; /* this removes the -content or index- rendering once pdf is created */

Trusted Advisor
Posts: 1,018

Re: Proc Report too long/too many rows, will not print

First, there are two PROC REPORT's in your code.  Which one fails?

 

Also, I notice the documentation for the ODS REGION statement says

  • Creates a region container for absolute layouts. ...This ODS REGION statement is sandwiched between the ODS LAYOUT ABSOLUTE statement and the ODS LAYOUT END statement. The ODS LAYOUT ABSOLUTE statement manages the ODS LAYOUT destination when producing one page of output for PRINTER destinations."

    and the documentation for ods layout absolute says
  • Absolute layout enables you to specify an exact page location using x and y coordinates. Absolute layout is perfectly suited for static types of output that can be printed on a single page where you want output placed in a specific location. Examples are preprinted forms and cover pages.

 

So, given you need more than one page, perhaps your solution lies in the ODS statements rather than proc report.

Ask a Question
Discussion stats
  • 3 replies
  • 155 views
  • 0 likes
  • 3 in conversation