1. 程式人生 > >SAP ABAP程式設計 ABAP選擇螢幕:根據使用者選擇動態顯示螢幕

SAP ABAP程式設計 ABAP選擇螢幕:根據使用者選擇動態顯示螢幕

在有些程式中我們發現,如果使用者選擇了多個選項中的其一(單選框),則螢幕的外觀將會有所調整。 這是怎麼實現呢?我們來看下面的例子。 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。