我编写了一个SAS宏来导入文件夹中的所有excel文件并且它可以正常工作。我接下来要做的是 - 将proc导入日志或所有excel文件的结果发送到单个pdf。我的SAS代码如下所示:
%macro readxls (copyfrom=);
---
---
---
%do i=1 %to $count_files;
ods listing close;
ods pdf file='pathname\report_import.pdf';
proc import datafile="©from.\...." out=copyto.... DBMS=xlsx replace;
getnames=yes;
run;
ods pdf close;
ods listing;
%end;
%mend readxls;
由于某种原因,没有生成pdf文件。 SAS日志说,"注意:将ODS PDF输出写入DISK目的地" pathname \ report_import.pdf",printer" PDF"
答案 0 :(得分:3)
您无法将日志直接重定向到ODS输出目标。导入过程没有发送到ODS目的地的输出。
您可以做的是使用PROC PRINTTO将日志重定向到文本文件。接下来,您可以使用PROC DOCUMENT导入文件,并使用重播功能将其写入ODS输出目的地。
filename pdflog 'pathname\report_import.pdf';
filename tmplog 'pathname\report_import.txt';
proc printto log=tmplog;run;
%macro readxls (copyfrom=);
%do i=1 %to $count_files;
proc import datafile="©from.\...." out=copyto.... DBMS=xlsx replace;
getnames=yes;
run;
%end;
%mend readxls;
%readxls(copyfrom=...);
proc printto;run;
proc document name=pdflog(write);
import textfile=tmplog to logfile;
run;
ods listing close;
ods pdf file=pdflog notoc;
replay;
run;
ods pdf close;
quit;
ods listing close;