Отдельные страницы отчета при распечатке
У меня есть выход sas, и для каждого человека есть некоторая информация. Но каждый человек должен быть напечатан на отдельной странице, другими словами, PDF должен быть одной страницей для каждого человека. Я не использовал макрос в моем коде. Также я не знаю, как сделать макрос. Так есть ли способ, которым я могу разделить страницы без использования макроса?
Код:
data _null_;
set maingroup;
call execute('%bygroup(' || trim(maingroup) || ')');
run;
Этот код разделяет людей для каждой страницы. Но у меня нет макроса, я немного изменил код. Проверьте отчет, как показано ниже.
Ayda Ceyhan: 325
1258 458
Grade:3.0
Issues: Test
-------
Justin Costay: 526
1568 132
Grade:3.5
Issues: NA
Это вывод, здесь есть два человека. Мне нужно, чтобы они разделились для каждой страницы при распечатке.
1 ответ
Это во многом зависит от вашего фактического отчета; но в целом вы должны использовать группы, а не макросы.
Простой пример:
ods pdf file="c:\temp\test.pdf" startpage=bygroup;
proc report data=sashelp.class nowd;
by name;
columns age sex height weight;
run;
ods pdf close;
startpage=bygroup
говорит механизму PDF распечатать новую страницу для каждой группы. Возможно, вам придется использовать notsorted
если ваша переменная не может быть отсортирована по. Это может или не может делать то, что вы хотите, в зависимости от того, как вы создаете отчет.
Если вы делаете это с помощью пошагового программирования данных, вам может быть труднее не иметь доступа к макросу, который это делает. Честно говоря, я бы не использовал пошаговое программирование данных; в настоящее время, протокол процесса / таблица / и т. д. очень хороши в создании отчетов в любом формате, который вам нужен, и они намного более эффективны, чем программирование шагов данных.
В вашем конкретном простом примере вы можете ods pdf startpage=now;
команды через вызов выполнить (и затем использовать startpage=never
на оригинале ods pdf
заявление).