在有些程式中我們發現,如果使用者選擇了多個選項中的其一(單選框),則螢幕的外觀将會有所調整。 這是怎麼實作呢?我們來看下面的例子。 PARAMETERS: p1 TYPE c RADIOBUTTON GROUP g1 USER-COMMAND uc,
p2 TYPE c RADIOBUTTON GROUP g1 DEFAULT 'X'. PARAMETERS: p_werks TYPE werks MODIF ID ty1,
p_matnr TYPE matnr MODIF ID ty2. AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'TY1'.
IF p1 IS INITIAL.
screen-active = '0'.
ELSE.
screen-active = '1'.
ENDIF.
WHEN 'TY2'.
IF p2 IS INITIAL.
screen-active = '0'.
ELSE.
screen-active = '1'.
ENDIF.
ENDCASE.
MODIFY SCREEN.
ENDLOOP. AT SELECTION-SCREEN.
CLEAR sy-ucomm. 關于程式的說明: (1)該程式可以根據使用者選擇了P1或P2,決定顯示工廠還是物料号在螢幕上; (2)這裡 USER-COMMAND uc是關鍵,它代表使用者點選 RADIOBUTTON GROUP g1上的任一選項時,都将觸發PAI,并且Function code為 'UC'。 在CLEAR sy-ucomm.這裡打個斷點即可觀察sy-ucomm的值。 (3)MODIF ID 用于對螢幕元素進行分組,這在螢幕元素較多時更有用處,邏輯清晰。 這裡的PBO(AT SELECTION-SCREEN OUTPUT)就是根據使用者的選擇,決定不同組的螢幕元素是隐藏或顯示。 (4)與Radio Button(單選框)相似,Check Box(複選框)和List Box(下拉框)也可以觸發PAI。不過普通的螢幕編輯框則不支援,必須借助回車才可以觸發PAI。