ABAP:為Table Control建立Context Menu(轉老宋)

weilish發表於2010-10-20
怎樣為Table Control建立一個右鍵選單(Context Menu),大致步驟如下:
 
1,建立一個GUI Status
在SE80中點選程式名,並點選右鍵的建立,找到GUI Status。
它與普通選單欄的定義沒什麼不同,但是Status Type必須選擇Context Menu,假設命名為ST_CTMENU。
 
2,設定TabCtrl的Context Menu Form
建立一個Table Control,隨之在Screen Layout上雙擊TabCtrl的右上角,將彈出TabCtrl的屬性設定。
在Context Menu Form這裡,填入ON_CTMENU_TAB1。這是個Subroutine的名稱。
程式執行時,當使用者在Table Control範圍內點選右鍵,系統將自動呼叫該Subroutine。
 
3,彈出右鍵選單
當使用者右擊滑鼠後,程式可以載入在步驟一中預設定的選單,系統將自動在介面顯示。
FORM. on_ctmenu_tab1 USING po_menu TYPE REF TO cl_ctmenu.
  CALL METHOD cl_ctmenu=>load_gui_status
    EXPORTING
      program = sy-repid
      status  = 'ST_CTMENU'
      menu    = po_menu
    EXCEPTIONS
      OTHERS  = 9.
  IF sy-subrc = 0.
    MESSAGE 'GUI Status loaded.' TYPE 'S'.
  ENDIF.
ENDFORM.                    " ON_CTMENU_TAB1
 
4,響應具體事件
上面的步驟僅僅是彈出右鍵選單,而使用者可能在Context Menu上選擇某個功能。
使用者選擇某具體功能的操作,與點選介面上某按鈕的結果是一樣的,將觸發Screen的某Function Code。
該Function Code在步驟一中定義Context Menu時就一塊定義了。
 
實際上,Screen上的Text Field,Input/Output Field,Box,也都可以設定右鍵選單(Context Menu),設定步驟跟Table Control一模一樣。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16794144/viewspace-676386/,如需轉載,請註明出處,否則將追究法律責任。

相關文章