Loop at screen會loop處理屏幕上的每一個組件,並對其做相應的處理。
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERS S_DATE TYPE DATUM DEFAULT SY-DATUM MODIF ID OO.
SELECTION-SCREEN: END OF BLOCK B1.
SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME.
SELECT-OPTIONS: S_DATE2 FOR SY-DATUM MODIF ID PP.
SELECTION-SCREEN: END OF BLOCK B2.
SELECTION-SCREEN: BEGIN OF BLOCK B3 WITH FRAME.
PARAMETERS : R1 RADIOBUTTON GROUP D1 DEFAULT 'X' USER-COMMAND SINGLECLICK,
R2 RADIOBUTTON GROUP D1 .
SELECTION-SCREEN: END OF BLOCK B3.
選擇r1 的時候只顯示B1;r2時候只顯示B2
AT SELECTION-SCREEN OUTPUT.
IF R1 = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'PP'.
SCREEN-ACTIVE = '0'.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ELSEIF R2 = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'OO'.
SCREEN-ACTIVE = '0'.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
- Modiy屏幕的時候,如果屏幕有必輸字段則不能修改,只有把必輸項輸入值后才能修改屏幕,需要有所取舍;
- 注意:
PARAMETERS : R1 RADIOBUTTON GROUP D1 DEFAULT 'X' USER-COMMAND SINGLECLICK, 紅色這一段話必須有,否則不能動態修改屏幕;選擇一次單選框就會觸發一次atselection-screen output,實現動態修改屏幕.
- SCREEN結構解釋:
在SAP屏幕中,一個字段就像.NET中的一個控件,這個 字段對應一個SCREEN結構,就像控件的多個屬性。
SE11可以查看SCREEN結構中的字段,只是沒有備注。
名稱 長度 說明
NAME 30 屏幕字段的名稱
GROUP1 3 屬於字段組1的字段
GROUP2 3 屬於字段組2的字段
GROUP3 3 屬於字段組3的字段
GROUP4 3 屬於字段組4的字段
ACTIVE 1 可見並准備輸入的字段
REQUIRED 1 字段輸入是強制的,即該值為X是表示該字段必須輸入
INPUT 1 字段准備輸入
OUTPUT 1 字段僅用於顯示
INTENSIFIED 1 高亮顯示字段
INVISIBLE 1 禁用字段
LENGTH 1 減少字段輸出長度
DISPLAY_3D 1 以三維框架顯示字段
VALUE_HELP 1 顯示有值幫助的字段
上述長度為1的字段,=1表示有效,=0則相反。