BookmarkSubscribeRSS Feed
cuevasj
Quartz | Level 8

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

3 REPLIES 3
Aboveland
Fluorite | Level 6

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

cuevasj
Quartz | Level 8

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 */

mkeintz
PROC Star

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.

--------------------------
The hash OUTPUT method will overwrite a SAS data set, but not append. That can be costly. Consider voting for Add a HASH object method which would append a hash object to an existing SAS data set

Would enabling PROC SORT to simultaneously output multiple datasets be useful? Then vote for
Allow PROC SORT to output multiple datasets

--------------------------

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 3 replies
  • 1188 views
  • 0 likes
  • 3 in conversation