ABAP-SAP的Selection螢幕的事件處理順序
一、處理順序圖
二、處理說明
1、程式首先執行INITIALIZATION 事件;
2、接著執行AT SELECTION SCREEN OUTPUT事件(也就是PBO) ,在這個事件裡你可以通過修改系統預設screen內表修改螢幕的某些屬性;
PARAMETERS: TEST1(10) MODIF ID SC1,
TEST2(10) MODIF ID SC2,
TEST3(10) MODIF ID SC1,
TEST4(10) MODIF ID SC2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'SC1'.
SCREEN-INTENSIFIED = '1'.
MODIFY SCREEN.
CONTINUE.
ENDIF.
IF SCREEN-GROUP1 = 'SC2'.
SCREEN-INTENSIFIED = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
3、系統將螢幕輸出到使用者端,使用者就可進行互動操作了。也就是PAI處理,其分為
3.1欄位AT SELECTION-SCREEN ON XXXX.
REPORT EVENT_DEMO.
NODES SPFLI.
AT SELECTION-SCREEN ON CITY_FR.
IF CARRID-LOW EQ 'AA' AND CITY_FR NE 'NEW Benjamin'.
MESSAGE E010(HB).
ENDIF.
3.2地區AT SELECTION-SCREEN ON BLOCK XXXX.
REPORT EVENT_DEMO.
SELECTION-SCREEN BEGIN OF BLOCK PART1 WITH FRAME.
PARAMETERS: NUMBER1 TYPE I,
NUMBER2 TYPE I,
NUMBEr3 TYPE I.
SELECTION-SCREEN END OF BLOCK PART1.
SELECTION-SCREEN BEGIN OF BLOCK PART2 WITH FRAME.
PARAMETERS: NUMBER4 TYPE I,
NUMBER5 TYPE I,
NUMBER6 TYPE I.
SELECTION-SCREEN END OF BLOCK PART2.
AT SELECTION-SCREEN ON BLOCK PART1.
IF NUMBER3 LT NUMBER2 OR
NUMBER3 LT NUMBER1 OR
NUMBER2 LT NUMBER1.
MESSAGE E020(HB).
ENDIF.
AT SELECTION-SCREEN ON BLOCK PART2.
IF NUMBER6 LT NUMBER5 OR
NUMBER6 LT NUMBER4 OR
NUMBER5 LT NUMBER4.
MESSAGE E030(HB).
ENDIF.
3.3螢幕AT SELECTION-SCREEN
在此事件裡可以進行對使用者輸入進行完整性進行檢查。
在PAI處理中出現錯誤,系統返回螢幕,請求使用者重新輸入;
4、當所有的PAI執行後,則進入START-OF-SELECTION事件的執行。