我正在尝试为请求者创建一个输出,要求我在一个页面上获取一个预先存在的报告,该报告在单个页面上分成两列,并将它们分成不同的子部分,他们希望这些子部分由新的新分段开始的页面中间的标题。
我现在拥有的是:
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位于将整个页面视为一列,但随后返回两列以显示页面的其余部分。
谢谢!
答案 0 :(得分:0)
如果你有SAS 9.4(可能还有9.3),你可以使用ODS LAYOUT
来轻松实现这一目标。您需要创建一个网格化布局,然后将您的标题更改为另一个ODS TEXT
(您当然可以将其设置为标题)。标题与PROCs
一起使用,而不是单独使用,因此,如果您实际使用标题,它将显示在下一个PROC REPORT
所在的位置,而不是在其自己的区域。
这是一个可以帮助您入门的准系统示例。有关详细信息,请参阅ODS REGION和ODS 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;