Отдельные страницы отчета при распечатке

У меня есть выход 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 заявление).

Другие вопросы по тегам