过程报告-两张表的行

时间:2018-06-29 14:16:11

标签: sas proc-report

我必须以每行两个表,多行的格式导出一些数据。到目前为止,我已经建立了一个报表,其中多个表彼此堆叠,但是通过在代码语句中使用多个proc report语句,每行只有一个:

proc report data = mydata; title 'My Title:'; run;
proc report data = mydata; title 'My Title:'; run;
proc report data = mydata; title 'My Title:'; run;

我需要添加/修改哪些内容才能在报告中每行获得两个表?

谢谢

2 个答案:

答案 0 :(得分:2)

某些目的地直接在ODS语句中支持此操作;像ODS PDF

ods pdf file="test.pdf" columns=2  ;
proc print data=sashelp.class;
run;

proc freq data=sashelp.class;
tables age;
run;
ods pdf close;

但是,HTML没有。对于那些您想使用ODS LAYOUT的人。

ods html file="test.html";
ods layout gridded 
        columns=2;
ods region;
proc print data=sashelp.class;
run;
ods region;
proc freq data=sashelp.class;
tables age;
run;
ods layout end;
ods html close;

有关更多详细信息,请参见ODS Layout Tip Sheet

不幸的是,ODS LAYOUT无法与ODS EXCEL一起使用。如果愿意,您可以使用this macro做类似的事情,或者也许使用PROC DOCUMENT将表放在一起,但是我不确定那是如何工作的。

如果每列中要有一个以上的表,则每个表可以有一个ODS REGION(它们最终会被交替使用lrlr),或者可以在两个{{1}中添加更多},如果您不需要将它们正确网格化。

IE:

ODS REGION

那些只有两列,每列有2个表,但是它们没有对齐。

ods html file="test.html";
ods layout gridded 
        columns=2;
ods region;
proc print data=sashelp.class;
run;
ods region;
proc freq data=sashelp.class;
tables age;
run;
ods layout end;
ods html close;

这具有正确的网格布局。

答案 1 :(得分:0)

我最终通过调整以上内容解决了这个问题:

ods layout gridded columns=2 rows=2;

ods region;
proc print data=sashelp.class;
run;

ods region;
proc freq data=sashelp.class;
tables age;
run;

ods region;
proc print data=sashelp.cars;
run;

ods region;
proc freq data=sashelp.cars;
tables origin;
run;

ods layout end;

显然,行和列会根据您的需求而变化。生成SAS报告,然后将其作为项目中的步骤导出为HTML文件。

谢谢