2015-04-23 70 views
0

我希望能夠將所有報告打印到外部文件,但僅在結果查看器中顯示少數幾個報告。在下面的示例中,我想要reportA和reportB被顯示和打印(file.xls),但reportC要打印到單獨的文件(file2.csv)並且不顯示在結果查看器中。有任何想法嗎?SAS-Supress Results有關但不是全部proc打印ods輸出的結果視圖

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

我實際上通過使用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我會爲未來的項目記住這些設置。

+0

Proc Export does not work :)唯一要記住的是它如何處理格式化變量並確保它們以您期望的方式導出。 – Reeza

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; 
1

您還可以使用ODS EXCLUDEODS SELECT針對特定的目的地。

例如,ods html select none;會暫時關閉HTML目的地,但不會實際關閉它 - 它只是暫時不會得到任何結果。然後您可以使用ods html select all;將其重新打開。

您也可以使用ods html exclude all;做同樣的事情,然後用ods html exclude none;重新打開它。

使用任一語句,您還可以在ods select/exclude中使用where語句進行過濾,以僅影響輸出的一個特定部分。有關更多詳細信息,請參見documentation