需要GENERIC SAS宏从输入SAS数据集生成PDF / Excel / RTF报告。
以下是要使用的参数---->
1)indsn - 输入数据集 2)varlist - 要打印的变量列表。如果没有则打印数据集中的所有变量 3)report_type - PDF或Excel或RTF。您需要使用适当的ODS声明。 4)title1 - 报告的Title1 5)脚注1 - 报告脚注1 6)report_location - 报告的物理位置
请帮我构建上述问题的逻辑???
尝试做远:
CFBundleShortVersionString
1 6 4 4 5
6 5 4 5 5
3 7 9 5 9
7 9 4 8 6
跑;
ods pdf file =' /folders/myfolders/v.pdf' ;;
data test;
input ID var1 var2 var3 var4;
cards;
这只是宏的一半。
答案 0 :(得分:0)
首先,欢迎访问该网站!
这是一个满足您需求的宏:
*ProcessBody;
%macro reportgen(indsn=,varlist=, report_type=, title1=, footnote1=, report_location=);
/* Windows related option */
goptions device=actximg;
/* Check if report path specified and abort gracefully if it isn't */
%if "&report_location"="" %then
%do;
data _NULL_;
putlog "ERROR: No destionation. Report aborted.";
RUN;
%GOTO done;
%end;
/* If varlist present, then keep only varlist */
%if &varlist ne %then
%do;
data tmp (keep= &varlist);
set &indsn;
run;
%let indsn=tmp;
%end;
/* Close all ODS destionations before oppening the one required */
ODS _ALL_ close;
ODS &report_type file="&report_location";
/* Specify Title and Footnote */
%if &title1 ne %then
%do;
title "&title1";
%end;
%if &footnote1 ne %then
%do;
footnote "&footnote1";
%end;
/* Print the output */
proc print data=&indsn;
run;
/* Completion */
ODS _ALL_ close;
%done:
%mend;
示例电话:
%reportgen(indsn=sashelp.class,varlist=name,report_type=RTF,title1=Hello World!,footnote1=Goodbye World!,report_location=/home/tmp/test.RTF);