初学者对于报表程序里的SCREEN声明与事件很容易弄混,这篇文章帮你正本清源。
报表程序选择屏幕的三大变量元素声明:
SELECTION-SCREEN. 屏幕上的界面控制。
PARAMETERS. 屏幕上出现一个输入参数。
SELECT-OPTIONS.屏幕上出现两个输入参数。
报表程序的三大事件:
一、初始事件:
INITIALIZATION. 程序中最先执行的事件块,一般用于变量初始化。
二、选择屏幕事件:(因为ABAP中的SCREEN编程是单独的一块,所以要调用SCREEN可以按屏幕的特点块来调用)
AT SELECTION-SCREEN.
还包括了可分割为依次执行的若干屏幕事件块:
1、 AT SELECTION-SCREEN OUTPUT
2、AT SELECTION-SCREEN ON {para|selcrit}
3、AT SELECTION-SCREEN ON END OF selcrit
4、AT SELECTION-SCREEN ON BLOCK block
5、AT SELECTION-SCREEN ON RADIOBUTTON GROUP group
6、AT SELECTION-SCREEN ON {HELP-REQUEST|VALUE-REQUEST} FOR {para|selcrit-low|selcrit-high}
7、AT SELECTION-SCREEN ON EXIT-COMMAND 最后完成
三、取数事件:
START-OF-SELECTION.
取数。。。
END-OF-SELECTION.
一个完整的ABAP REPORT EVENT 执行顺序的DEMO程序:
*&---------------------------------------------------------------------*
*& REPORT ZSCREEN
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZSCREEN.
TABLES: SFLIGHT.
DATA S TYPE STRING VALUE 'DATA定义,'.
*报表程序的三大变量元素声明:
*SELECTION-SCREEN. 屏幕上的界面控制。
*PARAMETERS. 屏幕上出现一个输入参数。
*SELECT-OPTIONS.屏幕上出现两个输入参数。
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_BODY WITH FRAME.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN COMMENT /1(57) T1 .
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN END OF BLOCK BLOCK_BODY.
PARAMETERS: P_FILE TYPE STRING MODIF ID Z2.
SELECT-OPTIONS: SO_CARR FOR SFLIGHT-CARRID.
*报表程序的三大事件:
INITIALIZATION.
CONCATENATE S 'INIT事件,' INTO S.
AT SELECTION-SCREEN.
CONCATENATE S 'AT事件,' INTO S.
AT SELECTION-SCREEN OUTPUT.
CONCATENATE S 'OUTPUT事件,' INTO S.
AT SELECTION-SCREEN ON EXIT-COMMAND .
CONCATENATE S 'EXIT-COMMAND事件,' INTO S.
START-OF-SELECTION.
CONCATENATE S 'START-SELECTION事件,' INTO S.
END-OF-SELECTION.
WRITE:/ S .
执行后的界面和结果: