BookmarkSubscribeRSS Feed
deleted_user
Not applicable
How can I produce report written in data _null_ to go to Word isung ODS RTF. Is there any way I can do this. The summary report is custom made.
Thanks
1 REPLY 1
Cynthia_sas
Diamond | Level 26
Hi!
The advent of ODS brought changes to data _null_ syntax for custom tabular reports.

With "classic" DATA _NULL_ reporting statements, you could create custom tabular and custom "free-format" reports using FILE PRINT and PUT statements.

With ODS and DATA _NULL_ you can generate custom tabular reports. For custom "free-format" reports you have to wait for the capability described here:
http://www2.sas.com/proceedings/sugi28/022-28.pdf (Although, I understand that what's cooking now may be a bit different than what's described in the paper. But you'll get the general idea.)

For more information about DATA _NULL_ and custom table templates, I did a SUGI paper on this subject a few years ago and you can download the paper here:
http://www2.sas.com/proceedings/sugi30/088-30.pdf

The Tech Support FAQ for ODS also has some good examples.
http://support.sas.com/techsup/technote/ts664.html
http://ftp.sas.com/techsup/download/v7papers/ODS_DATA.pdf
http://support.sas.com/faq/036/FAQ03611.html
http://support.sas.com/rnd/base/topics/templateFAQ/Template.html (follow the links for ODS and the DATA Step)

Good luck! Here's a program that shows the basic syntax.

cynthia
[pre]
title;
footnote;
ods noproctitle;
ods listing;

** make some test data;
data work.sales;
set sashelp.shoes(rename=(sales=sales1));
where product contains 'Dress';
year1=2003;
sales2=sales1*1.05;
year2=year1+1;
sales3=sales2*1.05;
year3=year2+1;
run;

proc means data=work.sales noprint nway;
class Region;
var sales1 sales2 sales3;
id year1 year2 year3;
output out=work.salessummary
sum=sum_sales1 sum_sales2 sum_sales3
mean=mean_sales1 mean_sales2 mean_sales3;
run;

** this shows the "new" syntax for data _null_ and ODS;
** there is more you can do, but this is the basics.;
** With custom table templates added into the mix, ;
** you can do more to create custom tabular reports;
ods listing close;
ods rtf file='c:\temp\only_year3.rtf';
ods html file='c:\temp\only_year3.html';
ods pdf file='c:\temp\only_year3.pdf';
title 'Only Year 3 Dress Shoes Projected Sales';
data _null_;
set work.salessummary;
file print
ods=(variables=(Region
year3 sum_sales3 mean_sales3));
put _ods_;
run;
ods _all_ close;

ods rtf file='c:\temp\year1_year3.rtf';
ods html file='c:\temp\year1_year3.html';
ods pdf file='c:\temp\year1_year3.pdf';
title 'Compare Year 1 (Actual) and Year 3 (Projected)';
data _null_;
set work.salessummary;
file print
ods=(variables=(Region
year1 sum_sales1 mean_sales1
year3 sum_sales3 mean_sales3));
put _ods_;
run;
ods _all_ close;

ods listing;
[/pre]

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 1 reply
  • 1128 views
  • 0 likes
  • 2 in conversation