ABAP程序中的事件
事件流(6个):
第一部分:可编写选择屏幕界面与数据(变量,内表)
INITIALIZATION(初始化)
第二部分:选择屏幕上的准备 屏幕上按钮组件详细定义
多选框的选值推荐和标题栏按钮图标名称
AT SELECTION-SCREEN(屏幕跳出前)
第三部分:按钮事件,对屏幕上的一些操作
START-OF-SELECTION(取数据)
第四部分:取数,检查数据,对数据的一些事件,ALV展示
END-OF-SELECTION(展示数据)
第五部分:可有可无
TOP-OF-PAGE(普通报表输出页头)
END-OF-PAGE(普通报表输出页尾)
选择屏幕事件写在INITIALIZATION和START-OF-SELECTION之间,即:初始化和执行之间的事件
1:AT SELECTION-SCREEN OUTPUT.
相当于PBO,即:每次选择屏幕调用之前触发,选择屏幕输出之前,可以根据自己的需要改变。
2:AT SELECTION-SCREEN ON.
相当于PAI,即:屏幕操作时,会触发。可以做正确性检查,或者必输项处理等操作。
3:AT SELECTION-SCREEN ON EXIT-COMMAND.
补充这个事件,可能很多人没用过
即:当点击系统标准按钮,退出,返回,取消的时候,触发此事件。
AT SELECTION-SCREEN OUTPUT(取数据前的 -相当于PBO)
1. LOAD-OF-PROGRAM:程序开始执行时候自动调用
这个事件在SUBMIT,CALL TRANSACTION,PERFORM等执行的时候系统会自动调用这个事件。所以无需声明即可。
2. INITIALIZATION
(1).只能用于报表程序
(2).在选择屏幕出现之前执行,如果用逻辑数据库的话,这个是唯一能够修改选择屏幕初始值的地方。
(3).通常的用法是在这里给选择屏幕中的字段赋值。
3. AT SELECTION-SCREEN
(1).其实就像一个FORM,所以在这个事件里声明的变量都是局部变量。
(2).根据SY-UCOMM这个系统变量可以判断用户的命令
(3).在这个事件里响应的是屏幕上选择条件中的事件,例如CHECKBOX的选择与否,RADIOBUTTON的选择,LISTBOX的选择等等。所以分为以下几个方面:
1). ... ON psel :在PARAMETER变化是触发的事件
2). ... ON END OF sel :SELECT-OPTION触发的事件
3). ... ON VALUE-REQUEST FOR psel_low_high :选择的帮助(F4)
4). ... ON HELP-REQUEST FOR psel_low_high :选择的帮助(F1)
5). ... ON RADIOBUTTON GROUP radi :单选按钮事件
6). ... ON BLOCK block :框架的触发事件
7). ... OUTPUT :响应屏幕上的事件,修改选择屏幕的唯一方法
4. START-OF-SELECTION
报表程序必须执行的事件,在进入第二屏幕之前触发。
5. GET
获得逻辑数据库的值。前提是必须首先声明逻辑数据库。
6. END-OF-SELECTION
第二屏幕显示完毕,结束处理。
7. MODULE
这个是当你调用自己定义的屏幕时,响应屏幕事件的方法。
8. ENDMODULE
9. CHECK
只对逻辑数据库使用,检查是否取得数据。
10. REJECT
同样只对逻辑数据库使用,退出。
11. STOP
结束一个处理块。
12. RETURN
返回一个处理块。
ABAP选择屏幕上方添加按钮
选择屏幕上方添加功能按钮
-
- 如图所示:
- 具体步骤如下
-
- 1.在选择屏幕上声明按钮
- 2.在 INITIALIZATION 中定义按钮的文本和图标
- 3.在AT SELECTION-SCREEN 模块中响应按钮