第108章打印列表.docx
- 文档编号:28229164
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:29
- 大小:36.70KB
第108章打印列表.docx
《第108章打印列表.docx》由会员分享,可在线阅读,更多相关《第108章打印列表.docx(29页珍藏版)》请在冰豆网上搜索。
第108章打印列表
第八章1打印列表
概览
内容
在创建列表之后打印
在创建列表时打印
打印参数
执行和打印
从程序中打印
调用报表的打印列表
打印控制
ABAP/4报表的输出结果显示在列表中。
默认情况下,系统在创建列表之后将它(基本列表和辅助列表)发送到输出屏幕上。
本节讨论如何将列表发送到SAP假脱机系统而不发送到输出屏幕。
在ABAP/4中,将列表发送到SAP假脱机系统通常称为‘打印列表’。
但是这并不一定意味着在打印机上实际打印列表。
也可以使用假脱机系统暂时存储列表,并且可以使用该系统将列表存档而不打印。
关于SAP假脱机系统的详细信息,请参见文档打印指南(页Error!
Notavalidlink.),关于存档的详细信息,参见文档ArchiveLink编程界面(页Error!
Notavalidlink.).
ABAP/4提供了两种打印列表的可能:
可以在列表创建之时或创建之后打印。
1在创建列表之后打印
在创建列表之后打印时,请勿使用下面主题中所描述的专用打印语句来将列表从程序内发送到SAP假脱机系统。
默认情况下,系统将完整的列表发送到输出屏幕。
如果列表用户界面的状态中已激活了“打印”功能(功能码为PRI),那么,用户可以选定“打印”以将所显示的列表发送到SAP假脱机系统(参见打印输出列表(页错误!
链接无效。
))。
在“打印屏幕列表”对话窗口中,系统需要输入打印参数(参见打印参数(页8–3))。
要修改该屏的预设置,请参见打印参数–预设置值(页8–7)。
创建列表之后打印可能产生如下几个问题:
_为屏幕显示而不是打印输出格式化了显示在输出屏幕上的列表。
由于下述原因,不能始终将显示格式用于打印:
-输出屏幕上的列表通常只包含一个单页(参见确定页长(页错误!
链接无效。
)中的注意事项)。
打印时,系统将逻辑页‘分成’若干物理页(其格式取决于指定的打印参数)。
系统在每个打印页中设置页眉。
如果页眉包含页码,则所有页中(SY-PAGNO)的页码都相同。
这样,就禁止了对打印页的连续编号。
-如果列表含有使用NEW-PAGE(参见无条件分页(页错误!
链接无效。
))编排的分页符,则这些分页符不适用于打印页的格式,因为它可能导致进一步自动设置分页符。
由于只有NEW-PAGE增加SY-PAGNO系统字段,所以对于由自动分页符创建的打印页,系统将使用与前一页相同的页眉。
-如果由于REPORT或NEW-PAGE语句中的LINE-COUNT选项而使得列表包含若干页(参见多页列表(页错误!
链接无效。
)),那么,可以根本不打印列表(要是指定的页长度超出了打印页的最大页长度),也可以不充分使用此物理打印页。
-可以将输出屏幕上列表的宽度设置成1~255之间的任何值(参见确定列表宽度(页错误!
链接无效。
))。
该列表宽度不适用于打印格式。
标准打印机不能打印超过130列的列表,如果超出此范围,打印机将截去行的超出部分。
_创建屏幕输出列表时,列表中不能包含打印控制语句(参见打印控制(页8–20))。
_在每一打印页的末尾,不能输出程序中所定义的页脚行。
相反,只在“打印屏幕列表”对话窗口中标记“页脚”。
系统将在每页为系统定义的页脚行保留一空行。
输出屏幕上完整列表的打印输出是屏幕的硬拷贝而不是真正的程序控制打印输出。
这种方法只能用于测试或打印机可以接受其格式的列表。
对于复杂列表(例如,包含并不在每个打印页出现的扩展页眉的列表),请在程序中使用打印语句(参见在创建列表时打印(页8–2))。
如果要允许用户从输出屏幕启动程序控制打印进程,请使用交互式报告方法(参见交互式列表(页错误!
链接无效。
))。
例如,第一次为输出屏幕创建列表时,请使用自定义用户界面,在该界面中可以用自定义功能码代替功能码PRI。
在ATUSER-COMMAND事件中,请为假脱机系统重新创建列表(参见在创建列表时打印(页8–2))。
2在创建列表时打印
如果创建列表时打印,由于系统可根据打印机的要求格式化列表,因此将有最好的打印输出。
系统将根据打印格式设置列表宽度和页长。
这样可避免行的宽度超出所使用的打印格式的范围。
分页符将出现在物理打印页的末尾。
报表程序在开始创建列表之前必须识别此打印格式。
打印格式是打印参数的一部分。
打印参数由用户交互地设置,也可从程序中设置。
ABAP/4可能提供下列方法以便在创建列表时打印:
_如果报表程序显示选择屏幕,那么,用户可以在选择屏幕上选择“执行+打印”。
_可以使用NEW-PAGEPRINTON语句,从报表中启动打印输出。
_可以使用SUBMIT...TOSAP-SPOOL语句调用报表。
_可以使用功能模块JOB_SUBMIT将报表包含到后台作业。
关于后台作业和功能模块JOB_SUBMIT的详细信息,请参见文档基本编程界面(页Error!
Notavalidlink.)。
创建列表时打印,可以控制打印格式。
创建列表时打印,系统将每个完整页发送到假脱机系统,然后删除该页。
因此已打印列表的长度仅受假脱机系统容量的限制。
与显示列表相反,打印时系统不存储列表级别。
由于打印的总列表从不存在,所以您无法查阅前面页内容。
2打印参数
打印进程开始之前,必须设置打印参数。
创建列表之后再打印时,系统使用打印参数中指定的打印格式将完整列表分割以符合打印页面,必要时还会作相应的截断。
在创建列表时打印,系统使用打印格式实际格式化程序中的列表。
打印参数由用户交互地设置,也可从程序中得到。
下述主题包含:
2打印参数–概述
对于每种打印进程,假脱机系统都需要一组完整一致的打印参数。
在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(参见在程序中设置打印参数(页8–8))。
系统不接受直接赋给打印和存档参数集的任何值。
如果直接赋值并稍后使用这些值,将回出现运行时间错误。
4打印参数–预设置值
用户选择下列选项之后将始终显示“打印参数”对话窗口
_选择屏幕上的“执行+打印”选项。
_列表界面上的“打印”选项。
您不能禁止用户操作对话窗口。
但可以在程序中对“打印参数”对话窗口进行预设置。
请使用功能模块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的结果(参见在程序中设置打印参数(页8–8))。
如果用户在列表界面上选择了“打印”,则系统只使用FOOT_LINE参数。
如果该参数等于‘X’,则系统在每一页都输出一个系统定义的页脚行。
要在程序中包括功能模块,请在ABAP/4编辑器中使用“编辑->插入语句...CALLFUNCTION”。
关于如何使用SET_PRINT_PARAMETERS的示例,请参见执行和打印(页8–12)。
5在程序中设置打印参数
如果使用打印语句
_NEW-PAGEPRINTON
_SUBMIT...TOSAP-SPOOL
_CALLFUNCTION'JOB-SUBMIT'
来打印,可以使用打印语句中的相应选项,在程序中设置打印参数。
您可以通过“打印参数”对话窗口选择允许或禁止用户对话。
为确保正确完整地将参数发送到假脱机系统,应始终使用打印语句传输完整的参数集。
要创建参数集,请使用功能模块GET_PRINT_PARAMETERS。
下列主题将讨论该功能模块:
GET_PRINT_PARAMETERS-概述(页8–9)
GET_PRINT_PARAMETERS的输入参数(页8–9)
GET_PRINT_PARAMETERS的输出参数(页8–10)
GET_PRINT_PARAMETERS的例外参数(页8–11)
如何使用GET_PRINT_PARAMETERS(页8–11)
5GET_PRINT_PARAMETERS-概述
功能模块GET_PRINT_PARAMETERS要完成下列任务:
_创建一组打印和存档参数。
各个打印和存档参数紧密相连而且必须完整。
例如对每台输出设备,您必须指定页面设置的格式,而页面设置格式又需要设置行数和列数。
否则设置存档模式“存档”或“打印和存档”时,必须设置存档参数。
_从实际打印语句中分解用户对话。
打印语句(NEW-PAGEPRINTON,SUBMIT
在使用打印语句启动打印进程后,系统不能返回到打印语句之前。
用户只有通过“结束”(终止整个程序)来结束该进程。
GET_PRINT_PARAMETERS执行下列功能:
_您可以使用输入参数设置打印和存档参数。
功能模块可从系统中接收尚未通过输入参数设置的任何所需值。
这些值对应于“打印参数”对话窗口中的预设值,其中部分值在用户的主记录中设置。
_默认情况下,功能模块显示用户对话框的“打印参数”对话窗口。
在此,用户可以改写用输入参数或预设值填充的字段。
_功能模块将自动设置相关值。
如果设置输入参数(例如,为某种页面设置参数),则系统自动设置诸如行数和列数等相关参数,而不是象输入参数一样请求输入。
_功能模块提供完整的打印和存档参数集作为输出参数。
您可以使用打印语句中的选项将这些输出参数传输到假脱机系统。
参数集可以全部填充,也可以全部为空。
5GET_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选项,则系统在对话窗口中将它们作为预设值。
在对话窗口中系统提供“保存”按钮而不是“打印”按钮。
_REPORT
REPORT中包含的值总是影响假脱机请求(PLIST组件)中的名称预设值,否则该预设值由SY-REPID系统字段确定。
该值本身可由输入参数LIST_NAME(如果使用)改写。
如果将MODE设置成‘BATCH’,REPORT中的值将指定想作为后台作业予以启动的报表程序名称。
GET_PRINT_PARAMETERS为后台报表程序而不是为当前报表程序确定打印参数。
_NO_DIALOG
确定是否显示对话窗口。
如果NO_DIALOG的值为‘X’,则系统禁用该对话。
6GET_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’。
6GET_PRINT_PARAMETERS的例外参数
功能模块GET_PRINT_PARAMETERS包含下列例外参数:
_ARCHIVE_INFO_NOT_FOUND
指定的存档数据不一致或指定的档案文件在系统中不存在。
_INVALID_PRINT_PARAMS,INVALID_ARCHIVE_PARAMS
打印或存档参数集无效。
通过直接给参数字段串的各个组件赋值或使用这些结构填写输入参数IN_PARAMETERS或IN_ARCHIVE_PARAMETERS,您可创建无效的参数集。
参数字段串必须是前一次调用GET_PRINT_PARAMETERS的结果。
无效的输入参数(如,被设为0的行数或列数)也会创建无效的参数集。
6如何使用GET_PRINT_PARAMETERS
功能模块GET_PRINT_PARAMETERS是ABAP/4允许的给打印和存档参数集赋值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第108章 打印列表 108 打印 列表