BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
rjronald
Fluorite | Level 6

I am in the process of transition from SAS Desktop (using the basic window for coding) to SAS Server with enterprise guide. During this transition I am have to ensure that regular reports can still be run with Server/EG. Below is sample code with fake data and values. When I run it on my desktop basic SAS it produces the output (Test_1) I want, but when I run on the SAS Server the PDF output (Test_2) does not properly map the colours, the output graph size is wrong, and the text is squished. Any help would be appreciated.

 

The report path is just the file location where I store the pdf.

 

Code:

DATA Profile_Color;
	LENGTH ID FillColor LineColor ContrastColor $ 10;
	INPUT ID &:$2. Value &:$50. FillColor &:$6. LineColor &:$6. ContrastColor &:$6.;
	DATALINES;
	DR  Missing  BIGB  BIGB  BIGB
	DR  Present  MOYG  MOYG  MOYG
	DR  Absent  LIPB  LIPB  LIPB

	;
RUN;

DATA Test;
	LENGTH Specialty Clinic wl_wk D_R $ 11;
	INPUT Specialty &:$11. Clinic &:$4. wl_wk &:$6. D_R &:$6. Count;
	DATALINES;
Hippo  Grey  1 wk  Missing  3
Hippo  Grey  1 wk  Present  4
Hippo  Grey  2 wks  Present  5
Hippo  Grey  3 wks  Absent  1
Hippo  Grey  4 wks  Present  3
Hippo  Grey  6 wks  Present  1
Hippo  Grey  8 wks  Missing  3
Hippo  Grey  8 wks  Present  6
Hippo  Grey  8 wks  Absent  2
Hippo  Grey  11 wks  Absent  5
	;
RUN;

ODS PDF FILE="&report_path.\Test_2 &today..pdf" STYLE=Styles.Orionbackground NOTOC DPI=300;
ODS GRAPHICS ON;
ODS GRAPHICS / WIDTH=6IN HEIGHT=3.5IN;
PROC SGPLOT DATA=Test DATTRMAP=Profile_Color;
	WHERE Specialty = 'Hippo' and Clinic = 'Grey';
	TITLE2 FONT=Albany 'Referral Waitlist';
	VBAR WL_WK/ Group=D_R RESPONSE=Count GROUPORDER=ASCENDING FILLTYPE=Solid ATTRID=DR;
	YAXIS LABEL='# of Visitors' LABELATTRS=(FAMILY=Albany) VALUEATTRS=(FAMILY=Albany);
	XAXIS TYPE=Discrete VALUES=('> 26 wks' '24-26 wks' '20-23 wks' '18-19 wks' '17 wks' '16 wks' '15 wks' '14 wks' 
									'13 wks' '12 wks' '11 wks' '10 wks' '9 wks' '8 wks' '7 wks' '6 wks' '5 wks' 
									'4 wks' '3 wks' '2 wks' '1 wks')
					LABELATTRS=(FAMILY=Albany) VALUEATTRS=(FAMILY=Albany) DISPLAY=(NOLABEL);
	KEYLEGEND / TITLE='' LOCATION=INSIDE POSITION=TOPLEFT TITLEATTRS=(FAMILY=Albany) VALUEATTRS=(FAMILY=Albany);
	XAXISTABLE Count/ LOCATION=INSIDE STAT=SUM VALUEATTRS=(FAMILY=Albany) LABELATTRS=(FAMILY=Albany WEIGHT=Bold);
RUN;

ODS PDF CLOSE;
1 ACCEPTED SOLUTION

Accepted Solutions
ChrisHemedinger
Community Manager

Make sure the DATALINES lines are starting in column 1.

 

DATA Profile_Color;
	LENGTH ID FillColor LineColor ContrastColor $ 10;
	INPUT ID &:$2. Value &:$50. FillColor &:$6. LineColor &:$6. ContrastColor &:$6.;
	DATALINES;
DR  Missing  BIGB  BIGB  BIGB
DR  Present  MOYG  MOYG  MOYG
DR  Absent  LIPB  LIPB  LIPB
	;
RUN;
Register for SAS Innovate 2025!! The premier event for SAS users, May 6-9 in Orlando FL. Sign up now for the best deals!

View solution in original post

4 REPLIES 4
ChrisHemedinger
Community Manager

SAS Enterprise Guide will generate an ODS statement by default (likely ODS HTML5) with some settings that may affect your ODS PDF as well. To control for that, you can change the properties of your program to override default output (see this tip). Or try adding ODS CLOSE _ALL_ at the start of your code.

Register for SAS Innovate 2025!! The premier event for SAS users, May 6-9 in Orlando FL. Sign up now for the best deals!
rjronald
Fluorite | Level 6

Thanks! That helped with the text and size, however the color mapping is still not coming through. I get the following error message:

rjronald_0-1685037256947.png

 

ChrisHemedinger
Community Manager

Make sure the DATALINES lines are starting in column 1.

 

DATA Profile_Color;
	LENGTH ID FillColor LineColor ContrastColor $ 10;
	INPUT ID &:$2. Value &:$50. FillColor &:$6. LineColor &:$6. ContrastColor &:$6.;
	DATALINES;
DR  Missing  BIGB  BIGB  BIGB
DR  Present  MOYG  MOYG  MOYG
DR  Absent  LIPB  LIPB  LIPB
	;
RUN;
Register for SAS Innovate 2025!! The premier event for SAS users, May 6-9 in Orlando FL. Sign up now for the best deals!

sas-innovate-white.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Early bird rate extended! Save $200 when you sign up by March 31.

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1529 views
  • 2 likes
  • 2 in conversation