ALV GRID參考文檔 ( 10 )

在實現部分我們把方法的實現轉向到了form,這樣可以比避免OO編程的一些限制。當然也可以直接在OO部分實現這些方法。
在本地類的編碼裏你只要實現你希望觸發的方法就可以了。本文只是做一些簡單的介紹,至於每個事件就不一一贅述了。
有了事件持有者類,你就可以實例化它,並把它的方法註冊到ALV GRID的實例上,進而可以實現它的方法了。
DATA gr_event_handler TYPE REF TO lcl_event_handler.
*-- Creating an instance for event handler
CREATE OBJECT gr_event_handler.
*-- Registering handler methods to handle ALV GRID events
SET HANDLER gr_event_handler->handle_user_command FOR gr_alvgrid.
SET HANDLER gr_event_handler->handle_toolbar FOR gr_alvgrid.
SET HANDLER gr_event_handler->handle_menu_button FOR gr_alvgrid.
SET HANDLER gr_event_handler->handle_double_click FOR gr_alvgrid.
SET HANDLER gr_event_handler->handle_hotspot_click FOR gr_alvgrid.
SET HANDLER gr_event_handler->handle_button_click FOR gr_alvgrid.
SET HANDLER gr_event_handler->handle_before_user_command FOR gr_alvgrid.
SET HANDLER gr_event_handler->handle_context_menu_request FOR gr_alvgrid.
SET HANDLER gr_event_handler->handle_data_changed FOR gr_alvgrid.
SET HANDLER gr_event_handler->handle_data_changed_finished FOR gr_alvgrid.
HOTSPOT CLICKING
前面已經談到,在建立FIELD CATALOG時如果把字段HOTSPOT設爲X,那麼這個字段就會接受單擊事件。通過單擊事件hotspot_click就會觸發。這個事件有三個參數:參數e_row_id已經作廢,另外連個參數是具有類型LVC_S_ROID的es_row_no,通過es_row_no-row_id來反映當前的行號,和類型爲LVC_S_COL的e_column_id,通過e_column_id-fieldname來反映當前的字段名。通過這些參數你便可以知道單擊是鼠標的位置。
FORM handle_hotspot_click USING i_row_id TYPE lvc_s_row
                              I_column_id TYPE lvc_s_col
                              Is_row_no TYPE lvc_s_roid.
 READ TABLE gt_list INDEX is_row_no-rowid.
 IF sy-subrc = 0 AND i_column_id-fieldname = ‘SEATSOCC’.
    CALL SCREEN 200.
 ENDIF.
ENDFORM.
DOUBLE CLICKING
實現雙擊事件和實現單擊事件的過程差不多,你不需要在field catalog中設置任何信息就可實現雙擊事件。同單擊事件一樣,它也有三個參數,e_row(作廢),e_column和es_rowno。
FORM handle_double_click USING i_row TYPE lvc_s_row
                              I_column TYPE lvc_s_col
                              Is_row_no TYPE lvc_s_rowid.
 READ TABLE gt_list INDEX is_row_no-row_id.
 IF sy-subrc = 0 AND i_column-fieldname = ‘SEATSOCC’.
    CALL SCREEN 200.
 ENDIF.
ENDFORM.
發佈了4 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章