一个报表中可能包含多个事件块,在运行期间,系统将按照一定规则进行处理,但并不能说它们的执行先后次序是固定的。有的事件反复被触发,有时事件触发与用户行为相关,尤其是交互性事件。 具体一般性的报表事件触发过程如下:
(1)首先,一旦用户开始运行类型为1的可执行程序,事件LOAD-OF-PROGRAM被触发,程序开始运行,接下来程序流程将由ABAP运行时环境控制;
(2)然后,报表程序中定义的初始化过程事件INITIALIZATION被触发;
(3)接下来,如果程序中定义了供用户输入的选择屏幕,每次选择屏幕输出之前,系统将触发AT SELECTION-SCREEN OUTPUT事件,运行时环境将选择屏幕发送至显示服务器。如果用户在选择屏幕中输入某些值后执行某些功能,系统将触发 AT SELECTION-SCREEN事件;
(4)接下来,被触发的事件为START-OF-SELECTION(如果没有选择屏幕,该事件就不执行3,直接触发);
(5)如果报表中使用到逻辑数据库,则接下来触发的事件为GET和GET LATE;
(6)在START-OF-SELECTION事件或者逻辑数据库事件之后运行时环境触发的事件为END-OF-SELECTION事件,如果有列表,一般在该事件之后输出列表,此后系统运行时环境将控制交给显示服务器;
(7)列表输出的过程中还将自动触发两个事件过程块:TOP-OF-PAGE和END-OF-PAGE,其中TOP-OF-PAGE一般用于输出页眉、列表标题行等,END-OF-PAGE用户输出页脚;
(8)如果程序中定义有列表事件,则系统可以相应用户在列表屏幕中的行为,触发各种程序中交互事件。行选择交互事件(AT LINE-SELECTION事件)允许用户从列表中选择某行,并将触发响应事件。如果用户选择其他自定义的功能代码,将触发用户指令交互,即AT-USER-COMMAND事件块。
(1)首先,一旦用户开始运行类型为1的可执行程序,事件LOAD-OF-PROGRAM被触发,程序开始运行,接下来程序流程将由ABAP运行时环境控制;
(2)然后,报表程序中定义的初始化过程事件INITIALIZATION被触发;
(3)接下来,如果程序中定义了供用户输入的选择屏幕,每次选择屏幕输出之前,系统将触发AT SELECTION-SCREEN OUTPUT事件,运行时环境将选择屏幕发送至显示服务器。如果用户在选择屏幕中输入某些值后执行某些功能,系统将触发 AT SELECTION-SCREEN事件;
(4)接下来,被触发的事件为START-OF-SELECTION(如果没有选择屏幕,该事件就不执行3,直接触发);
(5)如果报表中使用到逻辑数据库,则接下来触发的事件为GET和GET LATE;
(6)在START-OF-SELECTION事件或者逻辑数据库事件之后运行时环境触发的事件为END-OF-SELECTION事件,如果有列表,一般在该事件之后输出列表,此后系统运行时环境将控制交给显示服务器;
(7)列表输出的过程中还将自动触发两个事件过程块:TOP-OF-PAGE和END-OF-PAGE,其中TOP-OF-PAGE一般用于输出页眉、列表标题行等,END-OF-PAGE用户输出页脚;
(8)如果程序中定义有列表事件,则系统可以相应用户在列表屏幕中的行为,触发各种程序中交互事件。行选择交互事件(AT LINE-SELECTION事件)允许用户从列表中选择某行,并将触发响应事件。如果用户选择其他自定义的功能代码,将触发用户指令交互,即AT-USER-COMMAND事件块。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13478566/viewspace-626094/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13478566/viewspace-626094/