打印out-sas时单独显示报告页面

时间:2014-05-15 17:57:04

标签: sas enterprise-guide

我有一个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 个答案:

答案 0 :(得分:2)

这在很大程度上取决于您的实际报告;但一般来说,你应该能够按组而不是使用宏来使用。

一个简单的例子:

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引擎为每个组打印一个新页面。如果您的by变量无法排序,则可能需要使用notsorted。根据您制作报告的方式,这可能会或可能不会完全符合您的要求。

如果您使用数据步骤编程执行此操作,则可能更难以访问正在执行此操作的宏。老实说,我不会使用数据步骤编程;如今,proc报告/制表/等。非常擅长以您想要的任何格式生成报告,并且它们比数据步骤编程更强大。

在您的特定简单示例中,您可以通过调用execute(然后在原始ods pdf startpage=now;语句上使用startpage=never)发出ods pdf命令。