列表是ABAP/4报表程序数据的输出媒介。每个ABAP/4报表程序将其输出数据传递到直接与该程序连接的列表中。每个程序最多生成21个列表:1个基本列表和20个辅助列表。
从ABAP/4程序之中,既可以将列表输出到屏幕也可以输出到SAP假脱机系统。将数据写入列表的基本ABAP/4语句是WRITE语句。其他输出语句是ULINE和SKIP。
标准列表
如果ABAP/4报表只使用WRITE、SKIP和ULINE输出语句并且不包含本节后面所说明的编辑语句,则系统将输出传递到标准列表。完成数据选择之后在该屏幕上显示列表。
标准列表结构
标准页眉
标准页眉至少包括两行标准标题。标准标题的首行包含列表表头和页号。第二行由水平线组成。执行程序时,列表表头存储在系统字段SY-TITLE中。如果需要,可以在标准标题中包括最多四行列头和另一条水平线。
标准页
输出数据显示在页眉之下。标准列表包含一个动态长度的单页(内部限制:60,000行)。输出长度由当前列表大小确定。
标准列表的宽度
标准列表的宽度取决于执行报表时的窗口宽度。如果用户窗口小于或等于标准窗口大小,则标准页宽应符合标准窗口宽度。用户可能必须滚动列表才能查看列表的所有部件。如果用户窗口超过标准窗口宽度,则标准列表的宽度符合选定标准窗口的宽度。总之,标准列表的宽度至少与标准窗口一样宽。标准窗口的宽度取决于操作系统。
输出屏幕包括允许用户滚动超过窗口宽度部分的水平滚动条。
标准列表的用户界面
标准列表的输出屏幕包含R/3系统的标准菜单栏和标准工具栏。
用户可以使用下列特定列表功能:
打印输出列表
要打印屏幕上显示的列表,用户可以选择“列表->打印”。
打印的标准页眉与显示的标准页眉不同,它还包含当前日期:
保存列表
要保存显示的列表,用户可以选择“列表->保存”。出现下列主题:
将列表保存在SAPoffice中
当选择“列表->保存->Office”时,出现一个对话框,询问用户是将显示的列表存储在用户的Office文件夹中还是发送给另一用户。
将列表作为本地文件保存在演示服务器中
选择“列表->保存->文件”时,出现一个对话框,询问用户是否将显示的列表作为本地文件保存,并提供几个格式选项。
修改列表和列标题
通常,可以列表和列标题创建为文本元素,也可以在屏幕上显示列表时修改这些表头。为此,请选择“系统->列表->列表头”。
自定义列表
可以修改标准列表的结构并创建单个结构的列表。使用REPORT语句选项以及事件TOP-OF-PAGE和END-OF-PAGE。PROGRAM语句与REPORT语句等价并有相同的选项。
要分别定义页眉的格式,必须在紧随事件关键字TOP-OF-PAGE的处理块中定义。
语法
TOP-OF-PAGE.
WRITE:....
TOP-OF-PAGE事件在系统开始处理列表新页时出现。系统在输出新页首行之前处理TOP-OF-PAGE后面的语句。
自定义页眉出现在标准页眉之下。如果要取消标准页眉,请使用REPORT语句的NOSTANDARDPAGEHEADING选项:
REPORTNOSTANDARDPAGEHEADING.
使用该语句时,系统不在报表列表页上显示标准页眉。如果使用TOP-OF-PAGE定义单个页眉,则系统就将其显示出来。
确定列表宽度
要确定输出列表的宽度,请使用REPORT语句的LINE-SIZE选项。
REPORTLINE-SIZE.
该语句根据字符确定报表输出列表的宽度。如果将设置为0,则系统使用标准列表的宽度。
一行最多可包含255个字符。但是,如果要打印列表,请记住大多数打印机不能打印超过132个字符的列表。如果要在创建时直接打印列表,则页宽必须符合某种现有打印格式。否则,系统就不能打印该列表。一定不要选择超过132字符的列表宽度,除非创建只用于显示的列表。
创建列表时,系统字段SY-LINSZ包含当前行宽。使用ULINE语句(不带AT选项)创建的水平线自动适配自定义列表宽度。
确定页长
要确定输出列表的页长,请使用REPORT语句的LINE-COUNT选项。
REPORTLINE-COUNT[()].
该语句用行确定报表输出列表的页长。如果指定选项号,则系统为页脚保留行页长。并不将这些页脚行填写到END-OF-PAGE事件中,而是作为空行显示。
如果将设置为0,则系统使用标准页长。要根据当前窗口大小调整页长。创建列表时,系统字段SY-LINCT包含每页的当前行数(即行或0代表标准页长度)。
如果在列表处理期间系统到达为实际列表提供的区域的结尾,则输出页脚,如果有,插入一些空格并且启动新页。插入的空格属于列表背景并且不是列表行。SY-PAGNO系统字段总包含当前页号。
定义页脚
要定义页脚,请使用END-OF-PAGE事件。在处理列表页时,如果系统到达页脚保留行,或者如果RESERVE语句触发分页则该事件发生。在紧接着END-OF-PAGE事件关键字的处理块中填充页脚的行:语法
END-OF-PAGE.
如果为REPORT语句的LINE-COUNT选项中的脚注保留行,则系统只处理紧接着END-OF-PAGE的处理块。