您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 基于SAS软件的高级RTF排版
基于SAS软件的高级RTF排版作者信息:KatjaGlaß,BayerScheringPharmaAG,Berlin,GER摘要:SAS9的结果输出系统(ODS)RTF功能提供了多种设计多文本格式的可能性,包括RTF命令在内的附加功能使得RTF的布局设计几乎有无限种可能。本文的目的是列出使用SAS设计RTF的不同方法。重点陈述使用直接RTF命令进行自动编码或创建不同类型表单等操作的优势。此外,本文进一步探讨了一般方法下如何实现用新的RTF命令丰富结果输出功能。前言SAS中ODS的主要优势是可以创建按单元格组织的逻辑表,这些逻辑表更易于处理,排版和阅读。目前,临床研究文献倾向于使用MS文档格式,SAS提供的ODSRTF可用于生成符合当前布局要求且可调整格式的表单,此外,ODSRTF与以往的ASCII格式相比还具有很多其他优势。下文将介绍基于SAS设计RTF文件的方案及附加功能1.基础知识1.1.基本OPTIONSPAPERSIZE=A4ORIENTATION=landscape;使用ODSRTF最重要的选项是地址和纸型的设置。这些涉及到RTF创建的选项应在每段SAS程序的开头设定。例如在欧洲地区创建表格常用A4横向版式:OPTIONSPAPERSIZE=A4ORIENTATION=landscape;1.2.根据使用ODSRTF通道只需要输入两条简单的命令,一条标志程序开始,一条标志结束:ODSRTF;ODSRTFCLOSE;在这两行命令间产生的所有SAS输出结果都自动放置在了RTF文件中。文件的结构和内容与相应的输出清单一致。基本RTF文档建立程序如下:ODSRTFFILE=”C:\temp\class.rtf”AUTHOR=”KatjaGlaß”TITLE=”OutputofSASHELP.CLASS”;PROCPRINTDATA=sashelp.class;RUN;ODSRTFCLOSE;图1:RTF输出的简单例子“FILE”命令重定向输出到另一个文件并成为SAS的缺省设置。使用ODSRTF的AURHOR和TITLE语句可以将一些文档元数据信息写入RTF文件。BODYTITLE是一个非常实用的语句,可以使标题和脚注在文中而不是页眉和页脚显示。当新表格需要另起一页显示时可以使用STARTPAGE=YES语句。ODSRTF最重要的功能是排版。总布置图,边缘距离,颜色等很多选项可以通过程序来定义。使用不同的SAS语句可以产生完全不同的页面:ODSRTFFILE=”C:\temp\class.rtf”BODYTITLESTARPAGE=YESSTYLE=journal;TITLE1“Printoutofsashelp.class”;FOOTNOTE1“Note:CreatedonFebruary2007”;PROCPRINTDATA=sashelp.class;RUN;ODSRTFCLOSE;更多关于ODSRTF版式的基础语句可在很多文献中找到,例如SUGI文摘125-29[1].1.3.ODSESCAPECHAR调用字段函数和其他RTF元素需要使用一个特殊字符,其前置代码需已在SAS中注册,后面的代码才能被定义。定义这个特殊的字符需要用到ESCAPECHAR语句:ODSESCAPECHAR=’^’;2.使用ODSRTF进行排版2.1.总体布局功能一些基本的标题和脚注样式可能已经存在于系统中。例如可以选择粗体字体,字体颜色,背景色,字体大小和高度。此外还可设置对齐,下划线和链接。下例将对这些用法加以说明:ODSRTFFILE=C:\temp\example.rtf;TITLE1BOLDCOLOR=blueBCOLOR=yellowboldbluetitleonyellowbackground;TITLE2FONT=arialHEIGHT=20UNDERLIN=1tallunderlinedarialtitle;TITLE3JUSTIFY=RLINK==sashelp.class;RUN;ODSRTFCLOSE;表格布局也存在一些标准样式。我们主要通过PROCREPORT过程来实现各种类型表格的输出,故本文重点讨论该过程,涉及到的一些语句也适用于其他过程。布局选项可应用于报告的不同位置,最常用于页眉,列,行或完整的报告。诸如颜色,字体,对准线和边缘距离等的不同选项可根据位置进行调整。在SAS文件编制中可找到完整目录。以下例子可加以解释:ODSRTFFILE=C:\temp\example.rtf;PROCREPORTDATA=sashelp.shoesNOWINDOWSHEADLINEMISSINGstyle(header)=[just=centerfont_size=10ptfont_weight=boldbackground=white]style(report)=[cellpadding=6pt];columnregionsubsidiaryproductstoressalesinventoryreturns;DEFINEregion/display;DEFINEstores/display;DEFINEinventory/displaySTYLE={FONT_STYLE=italic};DEFINEreturns/displaySTYLE={CELLWIDTH=3cm};computeregion;CALLDEFINE(_col_,Style,STYLE=[indent=1cm]);endcomp;computestores;IFstores4THENDO;CALLDEFINE(1,Style,STYLE=[background=yellow]);END;endcomp;RUN;ODSRTFCLOSE;2.2.嵌入式布局功能上文中提到的样式元素同样也适用于使用ESCAPECHAR加“S”作为指示符的其他位置。在标题和脚注中这些元素可如下例设置:ODSRTFFILE=C:\temp\test.rtfbodytitle;title1standardtitle;title2^S={indent=.12in}indentedtitle;title3^S={just=right}rightalignedtitle;title4^S={font_size=40pt}talltitle;title5^S={font=('ARIAL',20pt,bold)}tall,boldandarialtitle;footnote1^S={preimage='H:\MyDocuments\MyPictures\fische-7.jpg'}apicture;PROCPRINTDATA=sashelp.class;RUN;ODSRTFCLOSE;同样,这些元素也可用ODSRTFTEXT语句调用:ODSRTFFILE=C:\temp\test.rtfbodytitle;ODSRTFTEXT=standardtitle;ODSRTFTEXT=^S={indent=.12in}indentedtitle;ODSRTFTEXT=^S={just=right}rightalignedtitle;ODSRTFTEXT=^S={font_size=20pttalltitle;ODSRTFTEXT=^S={font=('ARIAL',20pt,bold)}tall,boldandarialtitle;ODSRTFCLOSE;在PROCREPORT语句输出的表格中也可使用这些样式:ODSRTFFILE=C:\temp\example.rtf;PROCREPORTDATA=sashelp.classNOWINDOWSHEADLINEMISSING;COLUMNsexnameageheightweight;DEFINEsex/groupnoprint;COMPUTEBEFOREsex;LINE'^S={just=leftfont_weight=bold}Sex='sex$1.;ENDCOMP;RUN;ODSRTFCLOSE;图2:在PROCREPORT语句中嵌入粗体式样这些布局块也可应用于整个板块的不同位置。例如可以仅将第一个单词加粗而其余的不加粗:ODSRTFFILE=C:\temp\example.rtf;PROCREPORTDATA=sashelp.classNOWINDOWSHEADLINEMISSING;COLUMNsexnameageheightweight;DEFINEsex/groupnoprint;COMPUTEBEFOREsex;LINE'^S={just=leftfont_weight=bold}S^S={font_weight=medium}ex='sex$1.;ENDCOMP;RUN;ODSRTFCLOSE;有时命令的顺序也很重要,如下例所见只是多了一行命令就无法实现欲想中的左对齐。为了达到文本内容的左对齐,相应命令应位于有关陈述的第一行。ODSRTFFILE=C:\temp\example.rtf;PROCREPORTDATA=sashelp.classNOWINDOWSHEADLINEMISSING;columnsexnameageheightweight;definesex/groupnoprint;computebeforesex;line'';line'^S={just=leftfont_weight=bold}Sex='sex$1.;endcomp;RUN;ODSRTFCLOSE;3.对RTF进行排版3.1.添加嵌入式RTF标签设计RTF文件最有趣,最灵活的方法是使用直接RTF命令和字段函数。各种各样的RTF命令(标签)有不同的使用方式。当在输出中使用包含RTF命令的RTF语句时,SAS会特别的遮蔽某些特殊字符,这使得PROTECTSPECIALCHAR语句可以使保护选项失效。为了避免由于数据(例:自由文本域)中包含那些特殊字符而报错,我认为只能命令SAS只在特殊位置暴露标签。当一段文本输出的开头是{且结尾是}时,SAS并不遮蔽中间的特殊字符。此外也可以用ESCAPECHAR语句来避免字符遮蔽。例如,标签“\b”意为令一段文本字体为黑体。接下来的例子说明了遮蔽功能,在第一行的\b并没有作为文本在输出中显示。第二个和第三个例子中遮蔽被去除了,因此最后一个单词显示成了粗体而标签\b被隐藏。1)ODSRTFTEXT=Thethird\bword;2)ODSRTFTEXT={Thethird\bword};3)ODSRTFTEXT=Thethird^R/RTF'\b'word;图3:使用加粗标签的例子常见RTF标签的信息参见ODSFAQS及其概念的有关SAS页面,详细说明在RTF说明书中已给出。查找特殊标签的好方法是使用类如微软文字处理软件等其他能产生RTF的软件。当文件以RTF格式保存后,再用文本编辑器打开可进行语法分析。匹配的标签添加在合适的位置上。然而绝大多数程序产生的RTF文件中包含了过多的标签,以至于为了找到相应标签需要耗费大量时间来查找和测试。3.2.使用字段函数字段函数是一类与前不同但非常实用的标签。由打开文件的程序(例如微软文字处理软件)所支持的所有的函数都可以在文件中建立。常用的函数有{page},表示当前页面;{pageof}表示页数,{filename}表示文件名,{createdate}表示显示日期以及{savedate}。使用微软文字处理软件时更容易检测到字段函数,只要创建一个字段(插入—字段…—选择一个字段)然后按[Alt]+[F9]就可以显示字段函数。当需要创建的表格较为复杂,内容中包含了不同的格式时也可以用该方法。在Word下可以看到相关语法。编程时应将欲嵌入文档的字段置于能表示下文描述了一个字段的特殊标签中,相应的标签为“{\field{\fldinst字段名}}”。这些标签不应
本文标题:基于SAS软件的高级RTF排版
链接地址:https://www.777doc.com/doc-4468582 .html