1 格式化列表输出
1 字段输出语句
WRITE [AT /pos(len)] f [<options>].
2 输出图标符号
WRITE symbol_name AS SYMBOL.
WRITE icon_name AS ICON.
其中symbol_name和icon_name是系统定义的常量。输出符号定义之前,需要先包含这些程序INCLUDE <symbol>.
和INCLUDE <icon>.
或者 INCLUDE <list>.
在列表中有时也需要将变量以复选框的形式输出WRITE f AS CHECKBOX.
3 输出线和空格
输出水平线:ULINE [AT /pos(len)].
等价于WRITE [AT /pos(len)] SY-ULINE.
生成竖直线:WRITE [AT [/][<pos>]] SY-VLINE.
等价于WRITE [AT [/][pos]] '|'.
4 设定输出位置
- POSITION col. 指定列所在位置
- SKIP TO LINE n. 指定光标行位置
以上两句用于指定光标位置 - NEW-LINE.指定光标起始于一个新行
- WRITE...UNDER f.指定光标仍位于当前行,但列位置设定为以前输出的字段f的正下方
5 设定输出格式
使用FORMAT语句可以实现其他一些屏幕格式功能FORMAT <option> [ON|OFF] <option> [ON|OFF]...
一旦设定,FORMAT语句中设置的格式将适用于所有后续输出语句,直到再次使用OFF选项关闭。
- COLOR n [ON|OFF] 设定列表行的背景色
- INTENSIFIED [ON|OFF] 设定是否将字段强化输出
- INVERSE [ON|OFF] 设定是否将背景即文字颜色反转输出
- HOTSPOT [ON|OFF] 将光标以手型显示,点击触发行选择事件
- INPUT [ON|OFF] 设定输入字段
- RESET [ON|OFF] 恢复上述所有设定默认值
2 页面格式设定
1 列表标题和栏目元素
可以通过(Goto->Text elements->List Heading)维护列表标题和最多四个栏目标题;如果没有维护,则列表将默认使用系统变量SY-TITLE中的内容作为标题进行输出。
可以在REPORT或PROGRAM语句中使用NO STANDARD PAGE HEADING隐藏所有的文本元素中预定的表头行和标题栏。
REPORT|PROGRAM NO STANDARD PAGE HEADING.
同时,还可以使用NEW-PAGE语句用自设定的表头行和标题代替标准设定
NEW-PAGE NO-TITLE|WITH-TITLE NO-HEADING|WITH-HEADING.
2 页长与叶宽
在REPORT或PROGRAM语句中使用LINE-SIZE和LINE-COUNT附加项可以为列表创建预定义的行长度及每页列数目,该设定将应用于所有级别的列表
REPORT|PROGRAM rep LINE-SIZE width LINE-COUNT length [(footer_length)].
可以使用NEW-PAGE语句在列表级内部设定,该值将覆盖REPORT语句中的全局设定
NEW-PAGE LINE-SIZE width LINE-COUNT length [(footer_length)].
3 页眉与页脚
TOP-OF-PAGE 事件可以在每一个新页面生成时被触发
END-OF-PAGE 定义页脚,要触发该事件,需要REPORT语句的LINE-COUNT附加项中为其预留输出行数;或者通过RESERVE语句进行触发。页脚事件块中的输出将始终出现在页面下方
4 设定固定栏
使用SET LEFT SCROLL-BOUNDARY语句可以设定列表的固定栏
SET LEFT SCORLL-BOUNDARY column_num.
该栏不会随列表的水平卷动而改变位置,总是出现在屏幕左侧。如果不指定,则使用SY-SOLNO作为该左侧边界。边界限定必须在每一个新页面中进行(例如TOP-OF-PAGE)
使用下面的语句可以禁止列表中的下一列在卷动时同时移动,该功能可以使行比较长的列表中对应注释行总是可见NEW-LINE NO-SCROLLING.
5 跳至任意行
使用SCROLL语句可以在程序运行过程中随时跳至任意的列表行
SCROLL LIST TO FIRST PAGE | LAST PAGE | PAGE pag [INDEX idx] [LINE lin].
6 系统页面列表字段
在列表输出过程中,系统将填充下列相关的系统字段
- SY-LINCT REPORT语句中设定的LINE-COUNT
- SY-LINSZ REPORT语句中设定的LINE-SIZE
- SY-SROWS 当前显示窗口中的列表行数
- SY-SCOLS 当前显示窗口中的列表栏目数
- SY-PAGNO 当前页的页码
- SY-LINNO 当前输出页面中的当前选定行序号
- SY-COLNO 当前输出页面中的当前选定列序号
3 选择屏幕设定
报表程序一般都包括选择屏幕,该屏幕可以接受用户输入的选择标准,并可以通过其中定义的变式,辅助用户输入。
选择屏幕可以使用语句PARAMETERS或者SELECT-OPTIONS,SELECTION-SCREEN等语句进行创建和格式化。
除了屏幕默认的选择屏幕1000之外,用户还可以使用SELECTION-SCREEN语句创建其他选择屏幕,并在适当处使用CALL SELECTION-SCREEN语句调用该选择屏幕。具体语法如下:
SELECTION-SCREEN BEGIN OF SCREEN scr_nr.
PARAMETERS ...
SELECT-OPTIONS ...
SELECTION-SCREEN BEGIN OF SCREEN scr_nr.
...
CALL SELECTION-SCREEN scr_nr.
4 数据整理输出
结构化列表数据整理输出的基本流程分为下述环节:定义内表,向内表中填充数据,经过排序,删除重复行等整理循环输出,在循环过程中,还要进行一些控制级的相关操作。