初學者對於報表程序裏的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 .
執行後的界面和結果: