好久没写blog了,今天继续以前的专辑。继续介绍SAS/Intrnet的有关内容,前面介绍到运行环境设置后之后,下面就设计到如何将原有的sas程序中移植到sas/Intrnet的环境下了。
1 首先,分析原有sas程序中的变量,把需要用户设置的部分,提取出来,用宏变量代替;这些宏变量就是将来要通过用户界面赋值的;
举个最简单的例子:
有个制表过程
Proc tabulate data=database order=data;
var var1;
class factor;
table factor="分层因素名称" all="合计", var1*sum;
run;
在做分析时候,我们发现有几个变量是需要变化的(具体视业务需求而定,这里仅是举例),如我们分析的数据集名称database是需要用户来设定的,分层因素factor 和求和变量也是需要用户来灵活的设定的,另外将来出来的表格的标题行也需要用户来定,因此把这些变化的部分都用宏变量代替;
代码变成了:
proc tabulate data=&database formchar=’ order=data;
val &varl;
class &factor;
table &factor=“&select”all='合计' &varl*sum;
run;
2 增加输出控制:输出控制可以使用ods,还是拿上面的code举个例子:
普通sas程序增加ods部分之后的代码如下:
options nodate center;
ods html style=sasweb;
proc tabulate data=&database formchar=’ order=data;
val &varl;
class &factor;
table &factor=“&select”all='合计' &varl*sum;
run;
quit;
ods html close;
如何将这一结果以html方式返还给客户端的ie浏览器呢,非常简单,略做修改即可:
options nodate center;
ods html style=sasweb body=_webout path=&_tmpcat (url=&_replay) rs=no;
proc tabulate data=&database formchar=’ order=data;
val &varl;
class &factor;
table &factor=“&select”all='合计' &varl*sum;
run;
quit;
也就是增加一个webout的虚拟输出,同时在网页上制定broker调用的发布程序。
结语:从上面的解释可以看出,原有sas程序移植到web平台是非常方便的,无需重写代码,需要修改的部分我认为大概有三步:(1)宏的使用,如果原程序就带宏参数,这一步还可以省略;(2)修改ods输出格式为html,并通过样式对输出格式进行精确控制;(3)增加虚拟输出路径。
这样修改后的sas程序,可以在web平台上运行了,并能将结果以html方式返还给客户端,下一部分介绍如何制作用户访问界面,如果有网页设计经验的话,这个就太简单了。