网络知识 娱乐 SAS-花式报表的制作...

SAS-花式报表的制作...

关注SAS分享号,发现程序的美好

前言

很早之前,小编打算分享一篇关于SAS实现花式表格的输出,后来诸事烦身就渐渐的忘记了这一茬。日前,有朋友问了我一个表格输出问题。小编觉得是一个很有意思的程序,于是就想分享给大家,SAS也可以制作结构复杂的报表!

常规表格

作为一个SAS程序员,日常所接触到的常规表格无外乎是上面的几种结构。这种常规表格也是极容易实现的。一个report过程步就搞定了。

花式表格

小编所说的花式表格,就是结构看似复杂的非常规表格(如上图)。今天小编打算分享一下,上面这个表格的制作思路以及程序!

程序原理

在编写程序时,有时候可能很难查到相关的资料或是有直接实现的办法。于是,我们可以换一换思维,多绕俩下圈子。这也是小编写程序经常运用的一种屡试不爽的方式!

小编实现上面表格的思路如下:

1.将样表分为俩个report过程输出

2.第一个report过程采用多级标题很容易实现输出第一部分(前4行)

3.第二个report过程输出后第二部分(后3行)

4.利用RTF编码规则,将俩部分表格整合到一起。

变化

如上,左图为俩个report输出的表格,右图为通过SAS程序修改RTF标记语言后实现表格的整合。

具体实现过程与程序如下:

1、template的编写,设置表格为带边框的

2、定义宏变量,将需要采用多级标题观测值存入宏变量中,并利用report输出。

结果

3、利用SAS程序合并RTF,并修改RTF编码,实现上下表格无缝衔接。这里涉及到RTF合并的程序(见小编历史推文:SAS-RTF的合并【完善篇】),基于以前的程序稍作修改!

说明

上面这样修改的原因是生成的每个RTF文件结构都一样,所以可以在各RTF文件的指定位置做出这样的修改,如果template、页眉页脚等信息做出了修改,这里修改的行数大概也是变做出相应的调整!通过这里例子,主要是想分享一种思路,SAS程序也可以实现此类表格的制作。

既然RTF能实现如此结构的输出,那么能否实现Excel花式输出呢,显然也是可以的。Excel的输出,在小编的历史推文中都是有写过的。输出Excel想要实现指定单元格输出,采用DDE的方式也是一种便捷途径。

DDE实现指定单元格精确输出