1.报表事件
1.1过程化事件
INITIALZATINON 屏幕初始化事件
START-OF-SELECTION 按钮事件 对屏幕上的一些操作
END-OF-SELECTION 取数 检查数据 对数据展示的操作 ALV展示
1.2选择屏幕事件
AT SELECTION-SCREEN OUTPUT 选择屏幕PBO事件,每次选择屏幕调用前触发,在其中进行选择屏幕输出前的准备工作,如确定屏幕各元素的输出状态。
AT SELECTION-SCREEN 选择屏幕最后被触发的事件,用户在选择屏幕上回车,选择某个GUI按钮,功能键或者菜单项是触发。
AT SELECTION-SCREEN ON FIELD 在选择屏幕发生变化时触发的事件,对于选择屏幕某字段输入的PAI事件,当该字段值被传递给程序时被触发,可以应用于改字段本身的正确性检查,如可系统提示错误,则可以在该字段中重新输入,此时其他元素呈灰色,不接受输入。
AT SELECTION-SCREEN ON BLOCK BLOCK 框架的触发事件
AT SELECTION-SCREEN ON RADIOBUTTON GROUP GROUP 1 单选按钮事件,必须进行整体输入检查。
AT SELECTION-SCREEN ON SELTAB 使用多行选择对话框时触发,用于用户逐行输入后的检查。
AT SELECTION-SCREEN ON END OF SELTAB 使用多行选择对话框时触发,用于用户整个表输入结束后各行的检查。
AT SELECTION-SCREEN ON HELP-REQUEST FOR FIELD 选择屏幕的POH事件,F1事件,定义字段帮助。
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FIELD 选择屏幕的POV事件,F4事件,定义字段输入帮助。
1.3列表事件
TOP-OF-PAEG ALV页眉的设置
END-OF-PAEG ALV页脚的设置
1.4AT事件(AT块)
AT FIRST 循环时第一条记录时调用
AT LAST 循环时最后一条记录时调用
AT NBW 循环中当指定字段之前(包括指定字段)的组合与上一条记录不一样时调用。
AT END OF 循环中当指定字段之前(包括指定字段)的组合与下一条记录不一样是调用。
AT事件中的工作区不同于LOOP循环的工作区,该工作区中位于指定字段后面的值将不会读取(具体表现为断点中查看为"*"),如需用到需要重新抽取一次。
1.5交互式报表事件
AT USER-COMMAND 在屏幕列表显示器件选择了具有自定义功能码的函数时触发。
AT LINE-SELECTION 用于在报表输出时,点击某行时错产生的操作响应位置在整行。
AT PF-FUNCTION KEY (设置功能键) 用于定义PF键的功能及行为。
1.6报表选择画面
在报表的选择画面上添加自定义工具栏:通过语句 SELECTION-SCREEN FUNCTION KEY n (n为1至5,最多定义5个)
对选择屏幕上的元素进行分组:在PARAMETERS 或者 SELECT-OPTIONS 后使用附加语句“MODIF ID + 组名”
更改屏幕各个元素的状态:在 AT SELECTION-SCREEN OUTPUT事件或者PBO事件中更改。
常用的选择屏幕元素属性 :
SCERRN-NAME 画面元素名称
SCREEN-GROUP1~SCREEN-GROUP4 对画面元素的分组
SCREEN-INPUT 能否输入
SCREEN-LENGTH 可见长度
SCREEN-ACTIVB 是否是可用的状态
SCREEN-INVISIBLB 是否可见
1.7ALV报表
ALV报表的实现流程
声明数据对象→定义选择画面→从数据库取数→处理数据→显示数据
FM ALV常用的函数
REUSE_ALV_GRID_DISPLAY,REUSE_ALV_LIST_DISPLAY,
REUSE_ALV_GRID_DISPLAY_LVC
如何设置ALV中的热键
在ALV布局中为需要设置热键的列添加功能代码,在ALV显示时,注册热键处理程序,可以使用函数(REUSE_ALV_GRID_HOTSPO) 来注册热键处理程序。根据用户按下的操作进行处理,可以用函数(REUSE_ALV_EVENT_GRID_HOTSPOT)来处理热键事件。
FM ALV 与OOALV的比较
两种ALV都能够实现按钮自定义,数据修改,按钮处理自定义等操作,通常情况下FM ALV主要用于报表数据的展示以及简单交互,OOALV主要用于DIALOG程序的开发,可以进行复杂的控制,比如单元格的修改控制(FM ALV只能控制到列修改性),自定义F4等,OOALV可以根据容器排列很方便的定义布局,一个屏幕可以放多个ALV,但是FM ALV只能一屏显示一个ALV。