我希望能够将所有报告打印到外部文件,但只在结果查看器中显示少数几个。在下面的示例中,我希望reportA和reportB显示并打印(file.xls),但reportC打印到单独的文件(file2.csv),而不显示在结果查看器中。有什么想法吗?
ods msoffice2k file="/file/file.xls";
proc print data=reportA;
run;
proc print data=reportB
run;
ods msoffice2k close;
ods csvall file="/file/file2.csv";
proc print data=reportC;
run;
ods csvall close;
答案 0 :(得分:1)
您还可以使用ODS EXCLUDE
和ODS SELECT
定位特定目的地。
例如,ods html select none;
会暂时关闭HTML目标,但实际上并未将其关闭 - 它只是暂时无法获得任何结果。然后,您可以使用ods html select all;
将其重新打开。
您也可以使用ods html exclude all;
执行相同的操作,然后使用ods html exclude none;
将其重新打开。
使用任一语句,您还可以在ods select / exclude中使用where
语句进行过滤,以仅影响输出的某个特定部分。有关详细信息,请参阅documentation。
答案 1 :(得分:0)
关闭默认的列表输出。或HTML,如果这是您系统中的默认结果窗口。创建文件后重新打开输出。
ods msoffice2k file="/file/file.xls";
proc print data=reportA;
run;
proc print data=reportB
run;
ods msoffice2k close;
ods listing close;
ods html close;
ods csvall file="/file/file2.csv";
proc print data=reportC;
run;
ods csvall close;
ods listing;
ods html;
答案 2 :(得分:0)
我实际上通过使用proc export
功能来抑制csv输出的显示,找到了更好的解决方案。
ods msoffice2k file="/file/file.xls";
proc print data=reportA;
run;
proc print data=reportB
run;
ods msoffice2k close;
proc export data=reportC
outfile="/file/file2.csv"
dbms=dlm
replace;
delimiter=",";
run;
感谢@Reeza的帮助,我会在未来的项目中牢记这些设置。