ODS PDF - 在一页上由两列输出中断的两列输出

时间:2015-10-14 15:28:23

标签: sas sas-ods

我正在尝试为请求者创建一个输出,要求我在一个页面上获取一个预先存在的报告,该报告在单个页面上分成两列,并将它们分成不同的子部分,他们希望这些子部分由新的新分段开始的页面中间的标题。

我现在拥有的是:

ods pdf file=_pdf_ newfile=none startpage=no columns=2 notoc contents=no
style=swsp;

ods text = 'EMPLOYER RENEWAL DATA';

proc report data=renewal_data;
 ...
run;

ods startpage=now;
ods text='FINANCIAL DATA (FULL PROGRAM YEAR)';
proc report data=financial_data_total;
  ...
run;

ods startpage=now;
title1 '$ACA_YR_STR. ACADEMIC YEAR DATA';
footnote;

ods text='APPLICANT DATA';
 ...
run;

我想要的是具有节标题的页面,其中第二个ods startpage = now位于将整个页面视为一列,但随后返回两列以显示页面的其余部分。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果你有SAS 9.4(可能还有9.3),你可以使用ODS LAYOUT来轻松实现这一目标。您需要创建一个网格化布局,然后将您的标题更改为另一个ODS TEXT(您当然可以将其设置为标题)。标题与PROCs一起使用,而不是单独使用,因此,如果您实际使用标题,它将显示在下一个PROC REPORT所在的位置,而不是在其自己的区域。

这是一个可以帮助您入门的准系统示例。有关详细信息,请参阅ODS REGIONODS LAYOUT文档。注意,这是生产中的东西,但也在积极开发中,因此不同版本的SAS(包括新版本)可能会改变其中一些工作方式(尽管希望不会破坏以前的现有功能,谁知道)。

ods pdf file="c:\temp\test.pdf" startpage=no newfile=none notoc contents=no
style=swsp;
options obs=10;

ods layout gridded columns=2 rows=3;
ods region row=1 column=1;
ods text = 'CLASS DATA';

proc report data=sashelp.class;
 columns name age;
run;

ods region row=1 column=2;
ods text='CAR DATA';
proc report data=sashelp.cars;
  columns make model;
run;

ods region column_span=2 row=2 column=1;
ods text='ACROSS THE WHOLE PAGE NOW';
footnote;

ods region row=3 column=1;
ods text='NOT ACROSS WHOLE PAGE FOR THIS PART';
proc report data=sashelp.baseball;
  columns name team;
run;
ods layout end;
ods pdf close;