Создать протоколы импорта для нескольких файлов в формате 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="&copyfrom.\...." 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="&copyfrom.\...." 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;
Другие вопросы по тегам