Создать протоколы импорта для нескольких файлов в формате PDF
Я написал макрос 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 написано: "ПРИМЕЧАНИЕ. Запись выходных данных PDF ODS в место назначения DISK" путь \ отчет_импорт.pdf ", принтер" PDF "
1 ответ
Вы не можете перенаправить журнал напрямую к месту назначения вывода 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;