SAPABAPREPORT报表程序.docx
- 文档编号:10215699
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:27
- 大小:30.99KB
SAPABAPREPORT报表程序.docx
《SAPABAPREPORT报表程序.docx》由会员分享,可在线阅读,更多相关《SAPABAPREPORT报表程序.docx(27页珍藏版)》请在冰豆网上搜索。
SAPABAPREPORT报表程序
报表程序
主要内容:
标准列表、
自定义列表、
多页列表。
列表是ABAP/4报表程序数据的输出媒介。
每个ABAP/4报表程序将其输出数据传递到直接与该程序连接的列表中。
每个程序最多生成21个列表:
1个基本列表和20个辅助列表。
从ABAP/4程序之中,既可以将列表输出到屏幕也可以输出到SAP假脱机系统。
将数据写入列表的基本ABAP/4语句是WRITE语句。
其他输出语句是ULINE和SKIP。
271标准列表
如果ABAP/4报表只使用WRITE、SKIP和ULINE输出语句并且不包含本节后面所说明的编辑语句,则系统将输出传递到标准列表。
完成数据选择之后在该屏幕上显示列表。
272标准列表结构
272标准页眉
标准页眉至少包括两行标准标题。
标准标题的首行包含列表表头和页号。
第二行由水平线组成。
执行程序时,列表表头存储在系统字段SY-TITLE中。
如果需要,可以在标准标题中包括最多四行列头和另一条水平线。
272标准页
输出数据显示在页眉之下。
标准列表包含一个动态长度的单页(内部限制:
60,000行)。
输出长度由当前列表大小确定。
272标准列表的宽度
标准列表的宽度取决于执行报表时的窗口宽度。
如果用户窗口小于或等于标准窗口大小,则标准页宽应符合标准窗口宽度。
用户可能必须滚动列表才能查看列表的所有部件。
如果用户窗口超过标准窗口宽度,则标准列表的宽度符合选定标准窗口的宽度。
总之,标准列表的宽度至少与标准窗口一样宽。
标准窗口的宽度取决于操作系统。
输出屏幕包括允许用户滚动超过窗口宽度部分的水平滚动条。
272标准列表的用户界面
标准列表的输出屏幕包含R/3系统的标准菜单栏和标准工具栏。
用户可以使用下列特定列表功能:
272打印输出列表
要打印屏幕上显示的列表,用户可以选择“列表->打印”。
打印的标准页眉与显示的标准页眉不同,它还包含当前日期:
273保存列表
要保存显示的列表,用户可以选择“列表->保存”。
出现下列主题:
273将列表保存在SAPoffice中
当选择“列表->保存->Office”时,出现一个对话框,询问用户是将显示的列表存储在用户的Office文件夹中还是发送给另一用户。
273将列表作为本地文件保存在演示服务器中
选择“列表->保存->文件”时,出现一个对话框,询问用户是否将显示的列表作为本地文件保存,并提供几个格式选项。
273修改列表和列标题
通常,可以列表和列标题创建为文本元素,也可以在屏幕上显示列表时修改这些表头。
为此,请选择“系统->列表->列表头”。
自定义列表
可以修改标准列表的结构并创建单个结构的列表。
使用REPORT语句选项以及事件TOP-OF-PAGE和END-OF-PAGE。
PROGRAM语句与REPORT语句等价并有相同的选项。
要分别定义页眉的格式,必须在紧随事件关键字TOP-OF-PAGE的处理块中定义。
语法
TOP-OF-PAGE.
WRITE:
....
TOP-OF-PAGE事件在系统开始处理列表新页时出现。
系统在输出新页首行之前处理TOP-OF-PAGE后面的语句。
自定义页眉出现在标准页眉之下。
如果要取消标准页眉,请使用REPORT语句的NOSTANDARDPAGEHEADING选项:
语法
REPORT
使用该语句时,系统不在报表
如果使用TOP-OF-PAGE定义单个页眉,则系统就将其显示出来。
REPORTSAPMZTSTNOSTANDARDPAGEHEADING.
TOP-OF-PAGE.
WRITE:
SY-TITLE,40'Page',SY-PAGNO.
ULINE.
WRITE:
/'SAPAG',29'Walldorf,',SY-DATUM,
/'Neurottstr.16',/'69190Walldorf/Baden'.
ULINE.
START-OF-SELECTION.
DO5TIMES.
WRITE/SY-INDEX.
ENDDO.
报表程序不使用标准页眉,而是使用TOP-OF-PAGE之后的自定义页眉。
要显式结束TOP-OF-PAGE处理块,必须指定事件关键字START-OF-SELECTION。
274确定列表宽度
要确定输出列表的宽度,请使用REPORT语句的LINE-SIZE选项。
语法
REPORT
该语句根据
如果将
一行最多可包含255个字符。
但是,如果要打印列表,请记住大多数打印机不能打印超过132个字符的列表。
如果要在创建时直接打印列表,则页宽必须符合某种现有打印格式。
否则,系统就不能打印该列表。
一定不要选择超过132字符的列表宽度,除非创建只用于显示的列表。
创建列表时,系统字段SY-LINSZ包含当前行宽。
使用ULINE语句(不带AT选项)创建的水平线自动适配自定义列表宽度。
REPORTSAPMZTSTLINE-SIZE40.
WRITE:
'SY-LINSZ:
',SY-LINSZ.
ULINE.
DO20TIMES.
WRITESY-INDEX.
ENDDO.
275确定页长
要确定输出列表的页长,请使用REPORT语句的LINE-COUNT选项。
语法
REPORT
该语句用
如果指定选项号
并不将这些页脚行填写到END-OF-PAGE事件中,而是作为空行显示。
如果将
要根据当前窗口大小调整页长。
创建列表时,系统字段SY-LINCT包含每页的当前行数(即
记住页眉长度是
因此,对于列表本身,只能使用
如果
如果在列表处理期间系统到达为实际列表提供的区域的结尾,则输出页脚,如果有,插入一些空格并且启动新页。
插入的空格属于列表背景并且不是列表行。
SY-PAGNO系统字段总包含当前页号。
确定页长时,应记住下列各项:
_对于屏幕输出,请使用标准页长以避免在屏幕中间分页。
_对于打印列表,则根据打印机要求设置页长。
应采用对任何页长都能产生合理输出的方式书写程序。
如果选择现有打印格式之外的页长,则不能在创建时直接打印。
对于仅指定页面设置的表格形式的列表使用固定长度规格。
在为此类列表编写程序代码之前,请检查能否使用预定义的SAPscript表格。
下列程序旨在说明LINE-COUNT选项的用法。
因此在一个屏上显示不同的列表页。
REPORTSAPMZTSTLINE-SIZE40LINE-COUNT4.
WRITE:
'SY-LINCT:
',SY-LINCT.
SKIP.
DO6TIMES.
WRITE/SY-INDEX.
ENDDO.
列表包括四页,每页四行。
每页由页眉和两行实际列表组成。
应注意每页结尾的空格。
276定义页脚
要定义页脚,请使用END-OF-PAGE事件。
在处理列表页时,如果系统到达页脚保留行,或者如果RESERVE语句触发分页则该事件发生。
在紧接着END-OF-PAGE事件关键字的处理块中填充页脚的行:
语法
END-OF-PAGE.
WRITE:
....
如果为REPORT语句的LINE-COUNT选项中的脚注保留行,则系统只处理紧接着END-OF-PAGE的处理块。
如果要以后开始处理实际列表,记住要通过使用合适的事件关键字,例如START-OF-SELECTION,结束紧接着END-OF-PAGE的处理块。
REPORTSAPMZTSTLINE-SIZE40LINE-COUNT6
(2)
NOSTANDARDPAGEHEADING.
TOP-OF-PAGE.
WRITE:
'PagewithHeaderandFooter'.
ULINEAT/(27).
END-OF-PAGE.
ULINE.
WRITE:
/30'Page',SY-PAGNO.
START-OF-SELECTION.
DO6TIMES.
WRITE/SY-INDEX.
ENDDO.
该程序包括三个处理块。
关闭标准页眉。
将页长设置为六行,其中两行留作页脚。
列表包括三页,每页六行。
每页由自定义的两行页眉、两行实际列表和两行页脚组成。
页脚中显示的当前页号来自系统字段SY-PAGNO。
多页列表
如果在报表中写入列表输出页的行数超过在REPORT语句LINE-COUNT选项中定义的行数,则系统自动创建新页。
每个新页都包含为报表定义的页眉和页脚(如果有的话)。
除自动分页外,可以使用NEW-PAGE和RESERVE语句显式地编码分页。
NEW-PAGE语句的选项允许分别设置每页格式。
也需要NEW-PAGE语句在程序内打印列表。
下列主题说明
276276编程分页
要编程无条件的分页,请使用NEW-PAGE语句。
要编程取决于页左边空行数的分页,请使用RESERVE语句。
277无条件分页
要在页处理期间触发分页,请使用NEW-PAGE语句的基本格式:
语法
NEW-PAGE.
该语句结束当前页。
在新页上显示所有其他输出。
如果输出写入到当前页和NEW-PAGE之后的新页,则只开始新页。
系统然后将SY-PAGNO系统字段家1。
不能产生空页。
不能触发END-OF-PAGE事件。
这意味着即使定义了页脚,系统也不输出。
REPORTSAPMZTSTLINE-SIZE40.
TOP-OF-PAGE.
WRITE:
'TOP-OF-PAGE',SY-PAGNO.
ULINEAT/(17).
START-OF-SELECTION.
DO2TIMES.
WRITE/'Loop:
'.
DO3TIMES.
WRITE/SY-INDEX.
ENDDO.
NEW-PAGE.
ENDDO.
该样本程序使用列表表头“标准页眉”定义为文本元素的标准页眉和自定义页眉。
每页都出现两个页眉。
DO循环两次遇到NEW-PAGE语句,但是只执行一次分页。
在第二条NEW-PAGE语句之后,没有输出。
277条件分页–定义行块
要在少于某一页剩余行数的条件下执行分页,请使用RESERVE语句:
语法
RESERVE
如果当前列表页的最后输出和页脚之间剩余的自由行数少于
在开始新页之前,系统处理END-OF-PAGE事件。
只有输出写入到后续页时,RESERVE才生效。
不创建空页。
REPORTSAPMZTSTLINE-SIZE40LINE-COUNT8
(2).
END-OF-PAGE.
ULINE.
START-OF-SELECTION.
DO4TIMES.
WRITE/SY-INDEX.
ENDDO.
DO1TIMES.
WRITE/SY-INDEX.
ENDDO.
RESERVE3LINES.
WRITE:
/'LINE1',
/'LINE2',
/'LINE3'.
该样本程序标准页眉的列表头定义为“标准页眉”。
REPORT语句将页长确定为八行,两行用于标准页眉,另外两行为页脚保留。
页脚包括水平行和空行。
因此,输出的实际列表,每页留下四行。
第一个DO循环填充这四行,然后发生END-OF-PAGE事件,其后系统自动开始新页。
在第二个DO循环之后,因为页上剩余的自由行数少于三,因此RESERVE语句触发END-OF-PAGE事件和分页。
278单页的标准页眉
标准页眉包括列表和列标题。
要影响标准页眉这些组件的表现形式,请使用NEW-PAGE语句的下列选项:
语法
NEW-PAGE[NO-TITLE|WITH-TITLE][NO-HEADING|WITH-HEADING].
使用NO-TITLE或WITH-TITLE选项取消或者在以后所有页上显示标准表头。
基本列表的缺省值为WITH-TITLE,辅助列表为NO-TITLE。
使用NO-HEADING或WITH-HEADING选项取消或在以后所有页上显示列标题。
基本列表的缺省值为WITH-HEADING,辅助列表为NO-HEADING。
即使使用REPORT语句的NOSTANDARDPAGEHEADING选项取消标准页眉,也能使用WITH-TITLE和WITH-HEADING激活单个组件的显示。
因为TOP-OF-PAGE事件在新页上处理,所以NEW-PAGE语句不能影响在该事件中定义的页眉显示。
REPORTSAPMZTSTLINE-SIZE40.
WRITE:
'Page',SY-PAGNO.
NEW-PAGENO-TITLE.
WRITE:
'Page',SY-PAGNO.
NEW-PAGENO-HEADING.
WRITE:
'Page',SY-PAGNO.
NEW-PAGEWITH-TITLE.
WRITE:
'Page',SY-PAGNO.
NEW-PAGEWITH-HEADING.
WRITE:
'Page',SY-PAGNO.
该程序创建五页,分别带有不同页眉。
将列表表头标题文本元素定义为“标准页眉”,列标题定义为“列”。
278单页页长
要分别确定每页的页长,请使用NEW-PAGE语句:
语法
NEW-PAGELINE-COUNT
该语句将后续页的页长确定为
如果将
页眉是页的部分因此也是页长的部分。
不能使用NEW-PAGE创建或更改页脚。
将REPORT语句中定义的页脚保存为与NEW-PAGE语句无关。
要将页长度适配当前窗口长度,请将
SY-SROWS系统字段包含当前窗口的行数。
REPORTSAPMZTSTNOSTANDARDPAGEHEADING
LINE-SIZE40LINE-COUNT0
(2).
TOP-OF-PAGE.
WRITE:
'TopofPage',SY-PAGNO,
'SY-SROWS:
',SY-SROWS.
ULINE.
END-OF-PAGE.
ULINE.
WRITE:
'EndofPage',SY-PAGNO.
START-OF-SELECTION.
*NEW-PAGELINE-COUNTSY-SROWS.
DO100TIMES.
WRITE/SY-INDEX.
ENDDO.
因为NEW-PAGE被标记为注释,所以该程序创建没有结尾的单页:
s系统在当前窗口中显示尽可能多的行,即12行。
在上面的数字中,12行包含两行自定义表头行和10行实际列表。
在垂直滚动时,页眉保持可见。
280列表级的页宽
不能更改列表级内单个页宽。
只能更改新列表级的所有页宽。
为此,请使用NEW-PAGE语句:
语法
NEW-PAGELINE-SIZE
从新页开始的所有列表级宽度都为
如果将
如果将
SY-SCOLS系统字段包含当前窗口一行的字符数。
在列表级之内,即下页不是新列表级的开始,则系统忽略LINE-SIZE选项。
280在程序之内滚动
在程序之内,可以垂直和水平滚动列表。
使用SCROLL关键字。
例如,如果要滚动到某页以响应用户输入,则从程序内滚动就很有意义。
SCROLL语句只对完成的列表生效。
如果在列表的第一条输出语句之前使用该语句,则不影响该列表。
如果在列表的第一条输出语句之后使用SCROLL,则影响整个列表,包括以后的所有输出语句。
在每条SCROLL语句之后,可以查询SY-SUBRC以查看系统是否成功。
如果系统成功滚动则SY-SUBRC为0;如果滚动不可能则为4,因为其超过列表边界。
如果正在使用几个列表级,则SY-SUBRC也可能是8,表明指定的列表级不存在。
SCROLL语句允许
垂直滚动
水平滚动
280通过窗口滚动窗口
要以当前窗口大小垂直滚动列表并且与页长无关,请使用这条语句:
语法
SCROLLLISTFORWARD|BACKWARD[INDEX
不带INDEX选项时,该语句以当前窗口大小向前或向后滚动当前列表。
使用INDEX选项时,系统以列表级
REPORTSAPMZTSTNOSTANDARDPAGEHEADINGLINE-SIZE40.
TOP-OF-PAGE.
WRITE:
'TopofPage',SY-PAGNO,'SY-SROWS:
',SY-SROWS.
ULINE.
START-OF-SELECTION.
DO100TIMES.
WRITE/SY-INDEX.
ENDDO.
DO1TIMES.
SCROLLLISTFORWARD.
ENDDO.
应注意,实际列表是以SY-SROWS减去表头行数进行滚动。
用户可以继续朝两个方向滚动。
280按页滚动
要按页滚动列表,即按页长垂直滚动列表,SCROLL语句提供下列选项:
滚动到某页
要滚动到某页,请使用SCROLL语句的TO选项:
语法
SCROLLLISTTOFIRSTPAGE|LASTPAGE|PAGE
[INDEX
不用INDEX选项,语句将当前列表滚动到首页、尾页或
使用INDEX选项,则系统滚动列表级
使用LINE选项时,系统显示从实际列表的
按页数滚动
要按页数滚动列表,请使用SCROLL语句的下列选项:
语法
SCROLLLISTFORWARD|BACKWARD
不用INDEX选项时,语句向前或向后滚动
如上所述,INDEX选项参考某一列表级。
REPORTSAPMZTSTNOSTANDARDPAGEHEADING
LINE-SIZE40LINE-COUNT8
(2).
DATA:
PAGTYPEIVALUE15,
LINTYPEIVALUE4.
TOP-OF-PAGE.
WRITE:
'TopofPage',SY-PAGNO.
ULINE.
END-OF-PAGE.
ULINE.
WRITE:
'EndofPage',SY-PAGNO.
START-OF-SELECTION.
DO100TIMES.
DO4TIMES.
WRITE/SY-INDEX.
ENDDO.
ENDDO.
SCROLLLISTTOPAGEPAGLINELIN.
该程序创建100页的列表,每页8行。
每页四行用于页眉和页脚。
列表从第15页开始显示。
由于LINE选项,实际列表的前三行滚动到页眉以下。
281滚动到列表的页边缘
要水平滚到列表的左或右页边缘,请使用SCROLL语句的下列选项:
语法
SCROLLLISTLEFT|RIGHT[INDEX
不用INDEX选项时,语句滚动到当前列表的左或右页边缘。
使用INDEX选项时,系统滚动列表级
REPORTSAPMZTSTNOSTANDARDPAGEHEADINGLINE-SIZE200.
TOP-OF-PAGE.
WRITE:
AT161'TopofPage',SY-PAGNO,
'SY-SCOLS:
',SY-SCOLS.
ULINE.
START-OF-SELECTION.
DO200TIMES.
WRITESY-INDEX.
ENDDO.
SCROLLLISTRIGHT.
该程序宽度为200的一页列表。
如果当前窗口宽度(存储在SY-SCOLS中)等于40,列表显示滚动到右页边边缘。
用户现在可以使用滚动条滚动到左边。
282按列滚动
要按列水平滚动列表,SCROLL语句提供几个选项。
在此情况下,一列意味着列表行一个字符。
滚动到某列
要滚动到某列,请使用SCROLL语句的TOCOLUMN选项:
语法
SCROLLLISTTOCOLUMN
不用INDEX选项时,系统显示从列
使用INDEX选项时,系统滚动列表级
按列数滚动
要按某一列数滚动列表,请使用SC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAPABAPREPORT 报表 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)