Печать SAS ODS Query/Statement вместе с выводом

SAS EG

Можно ли как-то распечатать запрос / оператор, используемый для получения выходных данных, вместе с выходными данными, используя SAS ODS?

Предположим,

ods pdf file=pdfile;
proc sql;
select a.*
from tab1 a inner join tab2 b
on a.something=b.something
where <>
having <>;
quit;
ods _all_ close;

это напечатало бы ВЫХОД, сгенерированный из вышеупомянутого запроса. Но можно ли также распечатать запрос через PDF-файл ods вместе с выводом?

1 ответ

Решение

Там нет автоматического способа перенаправить журнал, о котором я знаю.

Однако есть несколько способов получить то, что вы хотите.

Во-первых, если вы можете использовать Jupytr, у SAS есть плагины, позволяющие работать с SAS, а затем вы можете просто написать в записной книжке и запустить код, и результаты будут отображаться с вашим кодом так, как вы хотите. См. Сообщение в блоге Криса Хемедингера на эту тему для более подробной информации.

Во-вторых, SAS Studio будет поддерживать интерфейс в стиле ноутбука, вероятно, со следующей крупной версией (я верю версии 5.0), которая выйдет в конце следующего года. Точно так же вы поместите свой код и получите вывод в тех же окнах.

Наконец, третий вариант - сделать так, как предложил Reeza - записать в файл журнала, а затем распечатать его в выходной файл. Это грязно, но возможно.

Вот пример последнего. Я не прилагаю никаких усилий, чтобы очистить его, заметьте, вы, вероятно, захотите удалить протоколирование, связанное с PROC PRINTTO и другими заметками (или включить NONOTE).

ods pdf file="c:\temp\test.pdf";
filename logfile temp;
proc printto log=logfile;
run;
proc sql;
select * from sashelp.class;
quit;
proc printto;
run;
data _null_;
  infile logfile;
  input @1 @;
  call execute(cats('ods text="',trim(_infile_),'";'));
run;

ods _all_ close;
Другие вопросы по тегам