【轉載】[SAP ABAP開發技術總結]選擇螢幕——按鈕、單選核取方塊

hubaichun發表於2018-01-18

12.6.     按鈕、單選核取方塊、下拉框的FunCode

如果核取方塊與單選按鈕沒有設定Function Code,則它們就會像普通的輸入框一樣,即使狀態發生了改變,也不會觸發PAI事件

對話螢幕中的按鈕、核取方塊、單選按鈕、下拉框的Function Code都是通過螢幕元素 attributes來設定的;選擇螢幕中的FunCode則通過USER-COMMAND選項來設定

12.6.1.           選擇螢幕中的按鈕

SELECTION-SCREEN:PUSHBUTTON 2(12)  but1 USER-COMMAND cli1.
INITIALIZATION.
but1 'Button 1'."可直接設定按鈕上的標籤文字
AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'CLI1'.
  ENDCASE.

12.6.2.           選擇螢幕中的單選/核取按鈕:點選時顯示、隱藏其他螢幕元素

更多請參考動態修改螢幕章節

PARAMETERS show_all AS CHECKBOX USER-COMMAND flag.
PARAMETERS hide  RADIOBUTTON GROUP  rd USER-COMMAND flag2 DEFAULT 'X'.
PARAMETERS show  RADIOBUTTON GROUP  rd .
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME .
  PARAMETERSp1 TYPE c LENGTH 10 ,
              p2 TYPE c LENGTH 10.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE t.
  PARAMETERSp3 TYPE c LENGTH 10 MODIF ID bl2,
              p4 TYPE c LENGTH 10 MODIF ID bl2.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME .
  PARAMETERSp5 TYPE c LENGTH 10 MODIF ID bl3,
              p6 TYPE c LENGTH 10 MODIF ID bl3.
SELECTION-SCREEN END OF BLOCK b3.

INITIALIZATION.
  t '----ALL----'.
"單先與核取方塊、下拉選單項點選觸發PAI後,接下來還會觸發螢幕的PBO(回車也是這樣),但如果點選的是執行按鈕,則不會接著觸發螢幕的PBO,除非沒有輸出或在Basic List列表頁面上點選返回按鈕時,才會觸發PBO
AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF show_all 'X'  AND screen-group1 'BL2'.
      screen-active '1'."顯示
      MODIFY SCREEN.
    ELSEIF screen-group1 'BL2'.
      screen-active '0'."隱藏
      MODIFY SCREEN.
    ENDIF.
    IF  show 'X'  AND screen-group1 'BL3'.
      screen-active '1'.
      MODIFY SCREEN.
    ELSEIF  screen-group1 'BL3'.
      screen-active '0'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

原文出自 江正軍 技術部落格,部落格連結:www.cnblogs.com/jiangzhengjun

相關文章