首页 SAP的ABAP4语言中文培训教材第二部分第八章打印列表

SAP的ABAP4语言中文培训教材第二部分第八章打印列表

举报
开通vip

SAP的ABAP4语言中文培训教材第二部分第八章打印列表第8章1setZ_001page1打印列表概览xe"SAP假脱机系统"xe"报表,打印"xe"存档"xe"打印"xe"假脱机系统"xe"列表,打印"内容1在创建列表之后打印在创建列表时打印2打印参数2执行和打印7从程序中打印8调用报表的打印列表11打印控制12ABAP/4报表的输出结果显示在列表中。默认情况下,系统在创建列表之后将它(基本列表和辅助列表)发送到输出屏幕上。本节讨论如何将列表发送到S...

SAP的ABAP4语言中文培训教材第二部分第八章打印列表
第8章1setZ_001page1打印列表概览xe"SAP假脱机系统"xe"报表,打印"xe"存档"xe"打印"xe"假脱机系统"xe"列表,打印"内容1在创建列表之后打印在创建列表时打印2打印参数2执行和打印7从程序中打印8调用报表的打印列表11打印控制12ABAP/4报表的输出结果显示在列表中。默认情况下,系统在创建列表之后将它(基本列表和辅助列表)发送到输出屏幕上。本节讨论如何将列表发送到SAP假脱机系统而不发送到输出屏幕。在ABAP/4中,将列表发送到SAP假脱机系统通常称为‘打印列表’。但是这并不一定意味着在打印机上实际打印列表。也可以使用假脱机系统暂时存储列表,并且可以使用该系统将列表存档而不打印。关于SAP假脱机系统的详细信息,请参见文档打印指南(页Error!Notavalidlink.),关于存档的详细信息,参见文档ArchiveLink编程界面(页Error!Notavalidlink.).ABAP/4提供了两种打印列表的可能:可以在列表创建之时或创建之后打印。1setZ_002page1在创建列表之后打印xe"PRI,功能代码"xe"打印,已完成的列表"xe"列表,创建后打印"xe"屏幕输出,打印"在创建列表之后打印时,请勿使用下面主题中所描述的专用打印语句来将列表从程序内发送到SAP假脱机系统。默认情况下,系统将完整的列表发送到输出屏幕。如果列表用户界面的状态中已激活了“打印”功能(功能码为PRI),那么,用户可以选定“打印”以将所显示的列表发送到SAP假脱机系统(参见打印输出列表(页Error!Notavalidlink.))。在“打印屏幕列表”对话窗口中,系统需要输入打印参数(参见打印参数(页2))。要修改该屏的预设置,请参见打印参数–预设置值(页4)。创建列表之后打印可能产生如下几个问题:为屏幕显示而不是打印输出格式化了显示在输出屏幕上的列表。由于下述原因,不能始终将显示格式用于打印:-输出屏幕上的列表通常只包含一个单页(参见确定页长(页Error!Notavalidlink.)中的注意事项)。打印时,系统将逻辑页‘分成’若干物理页(其格式取决于指定的打印参数)。系统在每个打印页中设置页眉。如果页眉包含页码,则所有页中(SY-PAGNO)的页码都相同。这样,就禁止了对打印页的连续编号。-如果列表含有使用NEW-PAGE(参见无条件分页(页Error!Notavalidlink.))编排的分页符,则这些分页符不适用于打印页的格式,因为它可能导致进一步自动设置分页符。由于只有NEW-PAGE增加SY-PAGNO系统字段,所以对于由自动分页符创建的打印页,系统将使用与前一页相同的页眉。-如果由于REPORT或NEW-PAGE语句中的LINE-COUNT选项而使得列表包含若干页(参见多页列表(页Error!Notavalidlink.)),那么,可以根本不打印列表(要是指定的页长度超出了打印页的最大页长度),也可以不充分使用此物理打印页。-可以将输出屏幕上列表的宽度设置成1~255之间的任何值(参见确定列表宽度(页Error!Notavalidlink.))。该列表宽度不适用于打印格式。标准打印机不能打印超过130列的列表,如果超出此范围,打印机将截去行的超出部分。创建屏幕输出列表时,列表中不能包含打印控制语句(参见打印控制(页12))。在每一打印页的末尾,不能输出程序中所定义的页脚行。相反,只在“打印屏幕列表”对话窗口中标记“页脚”。系统将在每页为系统定义的页脚行保留一空行。输出屏幕上完整列表的打印输出是屏幕的硬拷贝而不是真正的程序控制打印输出。这种方法只能用于测试或打印机可以接受其格式的列表。对于复杂列表(例如,包含并不在每个打印页出现的扩展页眉的列表),请在程序中使用打印语句(参见在创建列表时打印(页2))。如果要允许用户从输出屏幕启动程序控制打印进程,请使用交互式 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 方法(参见交互式列表(页Error!Notavalidlink.))。例如,第一次为输出屏幕创建列表时,请使用自定义用户界面,在该界面中可以用自定义功能码代替功能码PRI。在ATUSER-COMMAND事件中,请为假脱机系统重新创建列表(参见在创建列表时打印(页2))。2setZ_003page2在创建列表时打印xe"JOB_SUBMIT"xe"NEW-PAGEPRINTON"xe"SUBMIT...TOSAP-SPOOL"xe"打印,创建时列出"xe"打印格式"xe"列表,创建时打印"xe"执行并打印"如果创建列表时打印,由于系统可根据打印机的要求格式化列表,因此将有最好的打印输出。系统将根据打印格式设置列表宽度和页长。这样可避免行的宽度超出所使用的打印格式的范围。分页符将出现在物理打印页的末尾。报表程序在开始创建列表之前必须识别此打印格式。打印格式是打印参数的一部分。打印参数由用户交互地设置,也可从程序中设置。ABAP/4可能提供下列方法以便在创建列表时打印:如果报表程序显示选择屏幕,那么,用户可以在选择屏幕上选择“执行+打印”。可以使用NEW-PAGEPRINTON语句,从报表中启动打印输出。可以使用SUBMIT...TOSAP-SPOOL语句调用报表。可以使用功能模块JOB_SUBMIT将报表包含到后台作业。关于后台作业和功能模块JOB_SUBMIT的详细信息,请参见文档基本编程界面(页Error!Notavalidlink.)。创建列表时打印,可以控制打印格式。创建列表时打印,系统将每个完整页发送到假脱机系统,然后删除该页。因此已打印列表的长度仅受假脱机系统容量的限制。与显示列表相反,打印时系统不存储列表级别。由于打印的总列表从不存在,所以您无法查阅前面页内容。2setZ_004page2打印参数xe"打印,打印参数"xe"打印参数"打印进程开始之前,必须设置打印参数。创建列表之后再打印时,系统使用打印参数中指定的打印格式将完整列表分割以符合打印页面,必要时还会作相应的截断。在创建列表时打印,系统使用打印格式实际格式化程序中的列表。打印参数由用户交互地设置,也可从程序中得到。下述主题包含:2setZ_011page2打印参数–概述xe"ARC_PARAMS"xe"PRI_PARAMS"xe"存档参数"xe"打印"xe"打印参数"对于每种打印进程,假脱机系统都需要一组完整一致的打印参数。在ABAP/4中,结构PRI_PARAMS(ABAP/4词典)的字段串表示一组打印参数。交互地传递打印参数时,在启动报表之后系统将显示下列对话窗口,并要求输入最重要的打印参数。下表说明“打印参数”对话窗口的输入字段与PRI_PARAMS组件的对应关系。 输入字段 组件 说明 输出设备 PDEST 打印机或传真机名称(从用户缺省值中预设) 份数 PRCOP 打印的份数。(预设值:1) 名称 PLIST 假脱机请求名称。只在您不想立即打印时设置此项。(用包括用户名(SY-UNAME)前三个字符的报表名称作预设值)。 标题 PRTXT 假脱机请求的说明文本,该文本出现在封面上。 权限 PRBER 对假脱机请求的权限。仅有权限的用户才可以查看请求内容。 立即打印 PRIMM 如果标记该字段,那么,系统在完成标记之后立即向“输出设备”发送假脱机请求。(从用户缺省值中预设) 打印后删除 PRREL 如果标记该字段,系统在将假脱机请求输出到“输出设备”之后立即将其删除。否则系统将在“保留期”到期后删除假脱机请求。(从用户缺省值中预设) 新假脱机请求 PRNEW 如果标记该字段,系统将创建新假脱机请求。否则系统尽量将该假脱机请求附加到尚未完成的请求中。在这种情况下,“名称”、“输出设备”、“份数”以及“格式”必须相同。 保留期 PEXPI 系统在删除假脱机请求之前的保留天数。(预设值:8) 存档模式 ARMOD 指定存档模式。要选择“打印”、“存档”和“打印及存档”(ARMOD值是1、2或3),请单击可能的条目按钮。(预设值:打印) SAP封面 PRSAP 如果该字段的值为‘X’,系统将创建包含若干数据的封面。如果该字段的值为‘D’,系统将根据输出设备的设置来决定封面打印与否。如果该字段为空,系统将不创建封面。(预设值:‘D’) 接受者 PRREC 为“SAP封面”指定接受者名称。(预设值:用户名) 部门 PRABT 为“SAP封面”指定部门名称。(其值从用户地址中预设) 行数 LINCT 列表行数。该字段与REPORT语句中的LINE-COUNT选项有相同效果。不能将打印行数指定为0(不限制行数)。该字段中的最大数值取决于“格式”字段的内容。(值由内部预设) 列数 LINSZ 列表每行的字符数。该字段与REPORT语句中的LINE-SIZE选项有相同效果。对于标准打印机,所指定的列数不能超过130。该字段中的最大数取决于“格式”字段的内容。(值由内部预设) 格式 PAART 该字段实际确定了输出的页面格式。对应于所连接的打印机,用户可以在该字段中设置具有不同最大页长和行宽值的打印格式。(值由内部预设)“打印参数”对话窗口将检查输入值的一致性和完整性。如果打印参数不一致(例如,使用了指定输出设备不支持的输出格式),就无法打印。打印参数LINCT和LINSZ不能覆盖REPORT或NEW-PAGE语句中的LINE-COUNT和LINE-SIZE选项。如果您在程序中使用这些选项,则此处所指定的值将填充LINCT和LINSZ组件。“打印参数”对话窗口中相应的输入字段将不再接受输入。如果所指定的值超出了在“格式”字段中确定的最大值,则无法打印列表。除了打印参数,还有存档参数。然而,只要打开光学存档(存档模式为“存档”或“打印及存档”),就必须指定这些参数。在ABAP/4中,与ARC_PARAMS(ABAP/4字典)具有相同结构的字段串代表一组存档参数。如果已打开了光学存档并且交互设置了打印参数,则将显示另一个对话窗口,即“存档参数”窗口,在该窗口上用户必须设置最重要的存档参数:下表说明“存档参数”对话窗口的输入字段与“ARC_PARAMS”组件的对应关系。 输入字段 组件 说明 对象类型 SAP_OBJECT SAP对象的对象类型 文档类型 AR_OBJECT 存档对象的文档类型 信息 INFO 存档请求的简捷信息 文本 ARCTEXT 存档请求的说明文本除非在对话窗口中所作的输入一致并且完整,否则无法将列表存档。要从程序中设置打印和存档参数,必须使用功能模块GET_PRINT_PARAMETERS(参见在程序中设置打印参数(页5))。系统不接受直接赋给打印和存档参数集的任何值。如果直接赋值并稍后使用这些值,将回出现运行时间错误。4setZ_008page4打印参数–预设置值xe"SET_PRINT_PARAMETERS"xe"打印"xe"打印参数,设置缺省值"用户选择下列选项之后将始终显示“打印参数”对话窗口选择屏幕上的“执行+打印”选项。列表界面上的“打印”选项。您不能禁止用户操作对话窗口。但可以在程序中对“打印参数”对话窗口进行预设置。请使用功能模块SET_PRINT_PARAMETERS。该功能模块没有输出参数,只对由上述用户操作之一触发的列表打印起作用。对于选择屏幕上的“执行+打印”,必须在ATSELECTION-SCREEN事件期间调用参数集SET_PRINT_PARAMETERS。对于列表界面的“打印”,您必须在列表发送到输出屏幕之前(或更早)调用功能模块。下表说明SET_PRINT_PARAMETERS的输入参数与打印及存档参数之间的对应关系: 输入参数 参数 说明 IN_PARAMETERS PRI_PARAMS 整个集合 IN_ARCHIVE_PARAMETERS ARC_PARAMS 整个集合 ARCHIVE_MODE PRI_PARAMS-ARMOD 存档模式 AUTHORITY PRI_PARAMS-PRBER 授权 COPIES PRI_PARAMS-PRCOP 份数 COVER_PAGE PRI_PARAMS-PRBIG 选择封面页 DATA_SET PRI_PARAMS-PRDSN 假脱机文件 DEPARTMENT PRI_PARAMS-PRABT 部门名称 DESTINATION PRI_PARAMS-PDEST 输出设备 EXPIRATION PRI_PARAMS-PEXPI 假脱机保留期 IMMEDIATELY PRI_PARAMS-PRIMM 立即打印 LAYOUT PRI_PARAMS-PAART 页面设置 LINE_COUNT PRI_PARAMS-LINCT 每页的行数 LINE_SIZE PRI_PARAMS-LINSZ 每行的列数 LIST_NAME PRI_PARAMS-PLIST 假脱机请求的名称 LIST_TEXT PRI_PARAMS-PRTXT 说明文本 NEW_LIST_ID PRI_PARAMS-PRNEW 新假脱机请求 RECEIVER PRI_PARAMS-PRREC 接受者 RELEASE PRI_PARAMS-PRREL 输出后删除 SAP_COVER_PAGE PRI_PARAMS-PRSAP SAP封面页 TYPE PRI_PARAMS-PTYPE 假脱机请求类型 FOOT_LINE PRI_PARAMS-FOOTL 输出页脚行 ARCHIVE_ID ARC_PARAMS-ARCHIV_ID 目标存档 ARCHIVE_INFO ARC_PARAMS-INFO 信息 ARCHIVE_TEXT ARC_PARAMS-ARCTEXT 说明文本 AR_OBJECT ARC_PARAMS-AR_OBJECT 文档类型 SAP_OBJECT ARC_PARAMS-SAP_OBJECT 对象类型要了解“打印参数”和“文档参数”对话窗口中的哪些字段与这些参数对应,请参见打印参数–概述(页2)中的 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 。对于参数IN_PARAMETERS和IN_ARCHIVE_PARAMETERS,必须分别使用结构PRI_PARAMS和ARC_PARAMS来给字段串赋值。这些字段串必须已初始化或包含功能模块GET_PRINT_PARAMETERS的结果(参见在程序中设置打印参数(页5))。如果用户在列表界面上选择了“打印”,则系统只使用FOOT_LINE参数。如果该参数等于‘X’,则系统在每一页都输出一个系统定义的页脚行。要在程序中包括功能模块,请在ABAP/4编辑器中使用“编辑->插入语句...CALLFUNCTION”。关于如何使用SET_PRINT_PARAMETERS的示例,请参见执行和打印(页7)。5setZ_012page5在程序中设置打印参数xe"GET_PRINT_PARAMETERS"xe"打印"xe"打印参数,由程序设置"xe"打印语句"如果使用打印语句NEW-PAGEPRINTONSUBMIT...TOSAP-SPOOLCALLFUNCTION'JOB-SUBMIT'来打印,可以使用打印语句中的相应选项,在程序中设置打印参数。您可以通过“打印参数”对话窗口选择允许或禁止用户对话。为确保正确完整地将参数发送到假脱机系统,应始终使用打印语句传输完整的参数集。要创建参数集,请使用功能模块GET_PRINT_PARAMETERS。下列主题将讨论该功能模块:GET_PRINT_PARAMETERS-概述(页5)GET_PRINT_PARAMETERS的输入参数(页5)GET_PRINT_PARAMETERS的输出参数(页6)GET_PRINT_PARAMETERS的例外参数(页6)如何使用GET_PRINT_PARAMETERS(页6)5setZ_015page5GET_PRINT_PARAMETERS-概述xe"GET_PRINT_PARAMETERS,概述"功能模块GET_PRINT_PARAMETERS要完成下列(任务:创建一组打印和存档参数。各个打印和存档参数紧密相连而且必须完整。例如对每台输出设备,您必须指定页面设置的格式,而页面设置格式又需要设置行数和列数。否则设置存档模式“存档”或“打印和存档”时,必须设置存档参数。从实际打印语句中分解用户对话。打印语句(NEW-PAGEPRINTON,SUBMIT<rep>TOSAP-SPOOL)支持用户对话,但是有不提供“返回”功能的不足。在使用打印语句启动打印进程后,系统不能返回到打印语句之前。用户只有通过“结束”(终止整个程序)来结束该进程。GET_PRINT_PARAMETERS执行下列功能:您可以使用输入参数设置打印和存档参数。功能模块可从系统中接收尚未通过输入参数设置的任何所需值。这些值对应于“打印参数”对话窗口中的预设值,其中部分值在用户的主记录中设置。默认情况下,功能模块显示用户对话框的“打印参数”对话窗口。在此,用户可以改写用输入参数或预设值填充的字段。功能模块将自动设置相关值。如果设置输入参数(例如,为某种页面设置参数),则系统自动设置诸如行数和列数等相关参数,而不是象输入参数一样请求输入。功能模块提供完整的打印和存档参数集作为输出参数。您可以使用打印语句中的选项将这些输出参数传输到假脱机系统。参数集可以全部填充,也可以全部为空。5setZ_017page5GET_PRINT_PARAMETERS的输入参数xe"GET_PRINT_PARAMETERS,输入参数"功能模块GET_PRINT_PARAMETERS与功能模块SET_PRINT_PARAMETERS具有相同的输入参数(参见打印参数–预设置值(页4)),但是下列参数例外:GET_PRINT_PARAMETERS没有输入参数FOOT_LINE,这是由于只有用户在列表输出屏幕上选择“打印”时,才需要该参数。GET_PRINT_PARAMETERS有下列附加输入参数:MODE下列值影响模块功能: MODE 效果 PARAMS 该值为默认值。用户可以在对话窗口中选择“打印”或“取消”。 PARAMSEL 对话窗口包含附加的“选择封面页”复选框。如果用户填写了该字段(打印参数PRBIG),则系统在包含选择屏幕选项的输出中包括封面页。 DISPLAY 对话窗口中的打印参数为只显示。 CURRENT 在当前打印进程中(在打印语句之后),使用功能模块确定打印参数。这些值相当于打印参数集。如果没有打印进程,系统将使用预设值。 BATCH 使用功能模块确定后台作业的打印参数。必须在输入参数REPORT中指定要启动的报表程序。如果报表程序的REPORT语句中包含LINE-COUNT和LINE-SIZE选项,则系统在对话窗口中将它们作为预设值。在对话窗口中系统提供“保存”按钮而不是“打印”按钮。REPORTREPORT中包含的值总是影响假脱机请求(PLIST组件)中的名称预设值,否则该预设值由SY-REPID系统字段确定。该值本身可由输入参数LIST_NAME(如果使用)改写。如果将MODE设置成‘BATCH’,REPORT中的值将指定想作为后台作业予以启动的报表程序名称。GET_PRINT_PARAMETERS为后台报表程序而不是为当前报表程序确定打印参数。NO_DIALOG确定是否显示对话窗口。如果NO_DIALOG的值为‘X’,则系统禁用该对话。6setZ_018page6GET_PRINT_PARAMETERS的输出参数xe"GET_PRINT_PARAMETERS,输出参数"功能模块GET_PRINT_PARAMETERS包括下列输出参数:OUT_PARAMETERS该参数要么包含一组完整的打印参数,要么为空(参见VALID)。OUT_ARCHIVE_PARAMETERS该参数要么包含一组完整的存档参数,要么为空(参见VALID)。VALID该参数显示参数集OUT_PARAMETERS和OUT_ARCHIVE_PARAMETERS是已完全填充还是为空。如果VALID的值为‘X’,则参数集是完整的。这时就可以将它们传输到假脱机系统。如果VALID的值为SPACE,则字段集为空。如果用户取消用户对话,就可将VALID值设置成SPACE。因此,用户对话之后始终检查VALID。如果没发生用户对话,那么,VALID的值将为‘X’。6setZ_019page6GET_PRINT_PARAMETERS的例外参数xe"GET_PRINT_PARAMETERS,例外参数"功能模块GET_PRINT_PARAMETERS包含下列例外参数:ARCHIVE_INFO_NOT_FOUND指定的存档数据不一致或指定的档案文件在系统中不存在。INVALID_PRINT_PARAMS,INVALID_ARCHIVE_PARAMS打印或存档参数集无效。通过直接给参数字段串的各个组件赋值或使用这些结构填写输入参数IN_PARAMETERS或IN_ARCHIVE_PARAMETERS,您可创建无效的参数集。参数字段串必须是前一次调用GET_PRINT_PARAMETERS的结果。无效的输入参数(如,被设为0的行数或列数)也会创建无效的参数集。6setZ_020page6如何使用GET_PRINT_PARAMETERSxe"GET_PRINT_PARAMETERS,如何使用"xe"假脱机系统,参数集"xe"假脱机系统参数"功能模块GET_PRINT_PARAMETERS是ABAP/4允许的给打印和存档参数集赋值的唯一途径。使用GET_PRINT_PARAMETERS向假脱机系统传输所填写的参数集可以避免程序异常终止,这对后台处理特别重要。但是,必须确保输出参数VALID不等于SPACE并且没有例外发生。注意:对于GET_PRINT_PARAMETERS,参数集完整因而系统能执行打印请求是最重要的。GET_PRINT_PARAMETERS不象“打印参数”对话窗口那样执行完整一致性检查。只有在执行打印请求时它才提供一致性检查。对于不一致的条目,可部分忽略、部分替换。例如,您可以使用与LAYOUT参数不相配的输入参数LINE_SIZE、LINE_COUNT设置值。在用户对话中,系统可发现这种不一致性。如果没有用户对话,这些值可能导致截断打印输出。在输入参数DESTINATION中设置无效值,同时将IMMEDIATELY设置成‘X’。在这种情况下,功能模块将用默认值(LP01)替换输出设备,并将组件PRIMM设置成SPACE。这将导致假脱机系统使用与默认打印机相配的设置来存储请求。要在程序中包括功能模块,请在ABAP/4编辑器中使用“编辑->插入语句...CALLFUNCTION”。连续多次调用功能模块GET_PRINT_PARAMETERS是合理的。例如,您可以在程序开始处使用GET_PRINT_PARAMETERS触发用户对话,并提示用户进行基本设置。然后可以将输出参数OUT_PARAMETERS和OUT_ARCHIVE_PARAMETERS用作输入参数以进一步调用功能模块(已从此功能模块的程序中修改了某些参数,例如用横向格式打印宽列表以及用纵向格式打印窄列表时)。关于使用GET_PRINT_PARAMETERS的示例,请参见从程序中打印(页8)和调用报表的打印列表(页11).7setZ_009page7执行和打印xe"SET_PRINT_PARAMETERS"xe"执行并打印"在创建时打印列表的最简单方法是用户在报表的选择屏幕上选择“执行+打印”。用户可以选择在屏幕上显示列表(选择“执行”)或无需显示直接打印列表(选择“执行+打印”)。如果用户在报表程序的选择屏幕上选择了“执行+打印”,那么,系统在创建列表之前将显示“打印参数”对话窗口。用户可输入打印参数。您可以使用功能模块SET_PRINT_PARAMETERS给该对话窗口预设值(参见打印参数–预设置值(页4))。这样,您必须按既可显示又可打印的方式来编写此列表。因此,在REPORT语句中不要指定宽于132个字符(LINE-SIZE选项)的页面宽度并且最好忽略页长的设置(LINE-COUNT选项)。使用“执行+打印”,用户可以只打印报表的基本列表。要打印在所显示的列表的交互事件期间创建的辅助列表,请使用NEW-PAGEPRINTON(参见从程序中打印(页8))。REPORTSAPMZTSTNOSTANDARDPAGEHEADINGLINE-COUNT0(2).PARAMETERSPTYPEI.INITIALIZATION.CALLFUNCTION'SET_PRINT_PARAMETERS'EXPORTINGARCHIVE_MODE='3'COPIES='5'DEPARTMENT='BASIS'DESTINATION='LT50'EXPIRATION=''IMMEDIATELY='X'LAYOUT='X_65_132'LINE_COUNT=54LINE_SIZE=20LIST_NAME='Test'LIST_TEXT='TestforUser''sGuide'NEW_LIST_ID='X'RECEIVER='KELLERH'RELEASE=''SAP_COVER_PAGE='X'START-OF-SELECTION.DOPTIMES.WRITE/SY-INDEX.ENDDO.TOP-OF-PAGE.WRITE:'Page',SY-PAGNO.ULINE.END-OF-PAGE.ULINE.WRITE:'Endof',SY-PAGNO.在执行该程序后,用户可以在选择屏幕上输入参数P的值(例如100)并选择“执行+打印”。然后系统显示该对话窗口:功能模块SET_PRINT_PARAMETERS用预设值填写输入字段。由于调用功能模块,即使REPORT语句中包含LINE-COUNT选项,字段“行”也准备接受输入。在这种情况下,需要该选项为两页脚行保留空间。在“打印参数”对话窗口中选择“打印”之后,由于输入参数ARCHIV_MODE将存档模式设置成“打印和存档”,因此,系统将显示“存档参数”对话窗口。如果用户在选择屏幕上输入100作为参数P的值,那么系统将创建SAP封面页和两张打印页,具体形式如下所示。第一页:Page1--------------------123.....4950--------------------Endof1第二页:Page2--------------------585960.....99100--------------------Endof2每页可输出的行数多达54行(包括页眉和页脚)。请注意,系统将按创建列表(页Error!Notavalidlink.)中所说明的那样,启用分页符并创建页眉和页脚。如果用户在选择屏幕上选择了“执行”而不是“执行+打印”,则系统将列表作为一页予以显示,并且在输出屏幕上不显示页脚。8setZ_010page8从程序中打印xe"GET_PRINT_PARAMETERS"xe"NEW-PAGEPRINTOFF"xe"NEW-PAGEPRINTON"xe"打印,从程序"xe"打印参数"xe"分页符"xe"假脱机请求"创建列表的同时要从程序中启动打印进程,请使用带有PRINTON选项的NEW-PAGE语句:语法NEW-PAGEPRINTON[NEW-SECTION][<params>|PARAMETERS<pripar>][ARCHIVEPARAMETERS<arcpar>][NODIALOG].该语句的作用是将所有后续输出放置在新页上(参见无条件分页(页Error!Notavalidlink.)),并且系统将NEW-PAGEPRINTON之后的输出语句解释为打印语句。换句话说,从NEW-PAGEPRINTON启动后,系统不再创建用于显示的列表而创建用于假脱机系统的列表。已经创建假脱机系统的列表之后,如果使用的NEW-PAGEPRINTON语句无NEW-SECTION选项,则语句无效。如果使用NEW-SECTION选项,请重新将页数(SY-PAGNO系统字段)设为“1”。如果系统已为假脱机系统创建了列表,那么NEW-SECTION可能有两种效果结果:如果指定的打印参数与当前创建的列表参数匹配,并且打印参数PRNEW等于SPACE,那么,系统不创建新的假脱机请求。如果指定的打印参数与当前创建的列表参数不匹配,或者打印参数PRNEW不等于SPACE,那么系统将关闭当前假脱机请求并创建新的假脱机请求。其它选项决定打印参数(如下所述)。在处理块(数据恢复期间的事件或交互事件)的结尾将自动结束打印进程。要直接结束为假脱机系统创建列表,请使用NEW-PAGE语句中的PRINTOFF选项:语法NEW-PAGEPRINTOFF.该语句将创建分页符并将最后一页发送到假脱机系统。该语句之后的任何输出语句都将显示在输出屏幕的列表中。确定打印参数要确定NEW-PAGEPRINT语句之后用于打印输出的打印参数,请使用语句的下列选项:可以使用若干选项<params>以指定每个打印参数(例如,DESTINATION<dest>)。关键字文档对每个选项都有说明。使用NODIALOG选项可以告诉系统是显示还是禁止显示“打印参数”对话窗口。由于系统不能检查指定参数是否完整,所以这种设置打印参数的方法是不方便的。只有在使用“打印参数”对话窗口时,才检测不完整的打印参数。但是这对后台作业行不通。如果打印参数不完全并且您使用了NODIALOG选项,那么,系统在语法检查之后发送警告消息,但并不终止处理。执行程序时,这可能导致无法预见的后果。因此,SAP建议不要使用<params>选项,取而代之,使用PARAMETERS选项,必要时还可使用ARCHIVEPARAMETERS选项。要创建相关参数<pripar>和<arcpar>,请使用功能模块GET_PRINT_PARAMETERS的输出参数(参见在程序中设置打印参数(页5))。这是确保设置完整的参数以及可执行打印请求的唯一方法。由于功能模块GET_PRINT_PARAMETERS具有自己的用户对话,所以总是使用NEW-PAGEPRINTON语句中的NODIALOG选项。REPORTSAPMZTSTNOSTANDARDPAGEHEADING.DATA:VAL,PRIPARLIKEPRI_PARAMS,ARCPARLIKEARC_PARAMS,LAY(16),LINESTYPEI,ROWSTYPEI.CALLFUNCTION'GET_PRINT_PARAMETERS'IMPORTINGOUT_PARAMETERS=PRIPAROUT_ARCHIVE_PARAMETERS=ARCPARVALID=VALEXCEPTIONSARCHIVE_INFO_NOT_FOUND=1INVALID_PRINT_PARAMS=2INVALID_ARCHIVE_PARAMS=3OTHERS=4.IFVAL<>SPACEANDSY-SUBRC=0.SETPF-STATUS'PRINT'.WRITE'Selectaformat!'.ENDIF.TOP-OF-PAGEDURINGLINE-SELECTION.WRITE:'Page',SY-PAGNO.ULINE.ATUSER-COMMAND.CASESY-UCOMM.WHEN'PORT'.LAY='X_65_80'.LINES=60.ROWS=55.PERFORMFORMAT.WHEN'LAND'.LAY='X_65_132'.LINES=60.ROWS=110.PERFORMFORMAT.ENDCASE.FORMFORMAT.CALLFUNCTION'GET_PRINT_PARAMETERS'EXPORTINGIN_ARCHIVE_PARAMETERS=ARCPARIN_PARAMETERS=PRIPARLAYOUT=LAYLINE_COUNT=LINESLINE_SIZE=ROWSNO_DIALOG='X'IMPORTINGOUT_ARCHIVE_PARAMETERS=ARCPAROUT_PARAMETERS=PRIPARVALID=VALEXCEPTIONSARCHIVE_INFO_NOT_FOUND=1INVALID_PRINT_PARAMS=2INVALID_ARCHIVE_PARAMS=3OTHERS=4.IFVAL<>SPACEANDSY-SUBRC=0.PERFORMLIST.ENDIF.ENDFORM.FORMLIST.NEW-PAGEPRINTONNEW-SECTIONPARAMETERSPRIPARARCHIVEPARAMETERSARCPARNODIALOG.DO440TIMES.WRITE(3)SY-INDEX.ENDDO.ENDFORM.该程序还未传递输入参数就立即调用功能模块GET_PRINT_PARAMETERS。在“打印参数”选择屏幕上,用户可以输入该程序的打印和存档参数。使用功能模块的输出参数,系统将这些参数传递到字段串PRIPAR和ARCPAR。为保证参数的完整一致性,程序通过对话窗口执行用户对话并检查VALID的返回值。完成对话之后,系统显示下列基本列表:在基本列表的状态PRINT中,功能码PORT和LAND分别被分配给功能键F5和F6,以及应用程序工具栏的两个按钮(参见ㄒ宓ダ的用户界面(页Error!Notavalidlink.))。如果用户选择此中的某一功能,则可能发生ATUSER-COMMAND事件,同时将用于纵向或横向输出格式的值赋给变量LAY、LINES及ROWS并调用子程序FORMAT。子程序FORMAT调用功能模块GET_PRINT_PARAMETERS,传递前步确定的参数PRIPAR和ARCPAR并将它们作为输入参数。程序将存储在LAY、LINES及ROWS中的值赋给输入参数LAYOUT、LINE_COUNT及LINE_SIZE。但不显示用户对话。系统将参数返回到字段串PRIPAR和ARCPAR。子程序调用的功能是给结构PRIPAR的组件PAART、LINCT和LINSZ设置新值。在检查参数的完整性和一致性后,程序将调用子程序LIST。该子程序使用NEW-PAGEPRINTON将列表发送到假脱机系统,由此使用PRIPAR和ARCPAR确定决定打印和存档参数。由于所有需要的设置都由GET_PRINT_PARAMETERS设置,所以无需用户对话。要查看存储的假脱机请求,用户可选择“系统->服务->打印请求”。选择“纵向”之后,假脱机请求如下所示:而选择“横向”之后,假脱机请求如下所示:11setZ_013page11调用报表的打印列表xe"GET_PRINT_PARAMETERS"xe"SUBMIT"xe"SUBMIT...TOSAP-SPOOL"xe"打印,被调用的报表"xe"假脱机请求"要将用SUBMIT从程序中调用的报表输出发送到假脱机系统,必须在SUBMIT语句中包括TOSAP-SPOOL选项:语法SUBMIT<rep>TOSAP-SPOOL[<params>|SPOOLPARAMETERS<pripar>][ARCHIVEPARAMETERS<arcpar>][WITHOUTSPOOLDYNPRO].关于SUBMIT语句的说明,参见调用列表(页Error!Notavalidlink.)。在创建打印输出的调用报表的列表并将它们发送到假脱机系统时,使用TOSAP-SPOOL选项将导致系统格式化这些列表。使用其它选项确定打印参数。确定打印参数要确定打印参数,请按NEW-PAGEPRINTON语句中所说明的那样进行操作(参见从程序中打印(页8)):可以使用某一<params>选项(参见关键字文档)单独设置打印参数或使用SUBMIT语句执行用户对话。但是,要确定打印参数,请只使用功能模块GET_PRINT_PARAMETERS(参见在程序中设置打印参数(页5))。功能模块GET_PRINT_PARAMETERS将从SUBMIT语句中分解用户对话并且在不执行用户对话的情况下保证设置完整的参数集。要确定该参数,只能使用选项SPOOLPARAMETERS和ARCHIVEPARAMETERS,要禁止SUBMIT语句的用户对话,请使用WITHOUTSPOOLDYNPRO选项。下列报表与逻辑数据库F1S相连接:REPORTSAPMZTS1.TABLESSPFLI.GETSPFLI.NEW-LINE.WRITE:SPFLI-MANDT,SPFLI-CARRID,SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-AIRPFROM,SPFLI-CITYTO,SPFLI-AIRPTO,SPFLI-FLTIME,SPFLI-DEPTIME,SPFLI-ARRTIME,SPFLI-DISTANCE,SPFLI-DISTID,SPFLI-FLTYPE.下列程序调用SAPMZTS1并将输出发送到假脱机系统:REPORTSAPMZTSTNOSTANDARDPAGEHEADING.DATA:VAL,PRIPARLIKEPRI_PARAMS,ARCPARLIKEARC_PARAMS.CALLFUNCTION'GET_PRINT_PARAMETERS'EXPORTINGLAYOUT='X_65_132'LINE_COUNT=65LINE_SIZE=132IMPORTINGOUT_PARAMETERS=PRIPAROUT_ARCHIVE_PARAMETERS=ARCPARVALID=VALEXCEPTIONSARCHIVE_INFO_NOT_FOUND=1INVALID_PRINT_PARAMS=2INVALID_ARCHIVE_PARAMS=3OTHERS=4.IFVAL<>SPACEANDSY-SUBRC=0.SUBMITSAPMZTS1TOSAP-SPOOLSPOOLPARAMETERSPRIPARARCHIVEPARAMETERSARCPARWITHOUTSPOOLDYNPRO.ENDIF.启动程序后,功能模块GET_PRINT_PARAMETERS触发用户对话,同时显示用输入参数值填充的“打印参数”对话窗口的“输出格式”区:用户输入并确认打印参数后,程序调用SAPMZTS1,同时传递GET_PRINT_PARAMETERS的输出参数并将它们作为打印和存档参数。SAPMZTS1既不创建屏幕显示也不创建用户对话。它将已创建的列表直接发送到假脱机系统。选择“系统->服务->打印请求”,用户可以查看所存储的假脱机请求。使用以上指定的输出格式,假脱机请求如下所示:12setZ_005page12打印控制xe"PRINT-CONTROL"xe"SETMARGIN"xe"打印,打印控制"xe"打印控制"在打印进程中您可以从报表中控制列表输出。只有当直接将列表发送到假脱机时,语句SETMARGIN和PRINT-CONTROL(在下列主题中说明)才有效。语句不影响在屏幕上显示并使用“列表->打印”从屏幕上打印的列表。12setZ_006page12确定上边距和下边距xe"SETMARGIN"xe"SY-MACOL"xe"SY-MAROW"xe"打印"xe"打印,边距"xe"打印,设置页边距"xe"打印页"要确定打印页的左边距和上边距大小,请使用该语句:语法SETMARGIN<x>[<y>].该语句将当前打印页发送到假脱机系统,并将打印页左边距设置成<x>列,如果指定<y>,则将上边距设置成<y>行。该语句将系统字段SY-MACOL和SY-MAROW的内容设置给<x>和<y>。对于打印输出,这些系统字段确定左边距的列数和上边距的行数。所设置的值适用于所有后续页面,直到使用另一SETMARGIN语句为止。如果您在一个页上指定了多个SETMARGIN语句,则系统总是使用最后一个。下列报表与逻辑数据库F1S相连接。REPORTSAPMZTSTLINE-SIZE60.TABLESSPFLI.SETMARGIN53.GETSPFLI.WRITE:/SPFLI-CARRID,SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-AIRPFROM,SPFLI-CITYTO,SPFLI-AIRPTO.启动此报表程序之后,如果用户在选择屏幕上选择“执行”,那么,在输出屏幕上将出现下列列表:SETMARGIN语句对屏幕显示无效。启动报表程序之后,如果用户在选择屏幕上选择“执行+打印”,那么,在创建列表的同时也将打印此列表。用户可以使用“系统->服务->打印请求”查看存储的假脱机请求:将列表转换成右边距五列及下边距三行。12setZ_022page12确定打印格式xe"PRINT-CONTROL"xe"表T02DD"xe"打印,打印格式"xe"打印格式"xe"打印控制代码"xe"假脱机管理"xe"设备类型"要确定打印格式,请使用PRINT-CONTROL语句:语法PRINT-CONTROL<formats>[LINE<lin>][POSITION<col>].在没有使用选项LINE和POSITION的情况下,该语句将按<formats>为从当前输出位置(系统字段SY-COLNO和SY-LINNO)开始打印的所有字符设置指定打印格式。LINE选项从<lin>行开始设置打印格式。POSITION选项从<pos>列开始设置打印格式。在<formats>中,您可以指定几种不同的打印格式。系统将参数值转换成打印机的专用代码,即所谓的打印控制代码。打印时系统将打印控制代码转换成选定打印机的打印机专用控制字符。下表列出了有效的<formats>选项以及对应的打印控制代码: <formats> 代码 说明 CPI<cpi> CI<cpi> 每英寸的字符数 LPI<lpi> LI<lpi> 每英寸的行数 COLORBLACK CO001 黑色 COLORRED CO002 红色 COLORBLUE CO003 蓝色 COLORGREEN CO004 绿色 COLORYELLOW CO005 黄色 COLORPINK CO006 粉红色 LEFTMARGIN<lfm> LM<lfm> 左边距 FONT<fnt> FO<fnt> 字体 FUNCTION<code> <code> 用于直接指定代码由于打印控制代码比<formats>选项多,所以您可以使用FUNCTION选项直接指定任何打印控制代码。只能使用打印格式设置格式(指在格式化输出屏幕的输出时既不可能也不合理的格式,例如大小规定或字体)。对于其它任何格式,请使用在格式化选项(页Error!Notav
本文档为【SAP的ABAP4语言中文培训教材第二部分第八章打印列表】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
robert
暂无简介~
格式:doc
大小:173KB
软件:Word
页数:14
分类:房地产
上传时间:2020-02-06
浏览量:8