ABAP-OOALV-回車事件
ABAP-OOALV-回車事件:
首先要為ALV_GRID設定enter事件:
CALL METHOD GO_ALV_GRID->REGISTER_EDIT_EVENT
EXPORTING
I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER
EXCEPTIONS
ERROR
OTHERS = 2.
然後編寫事件接收器:
CLASS CL_EVENT_RECEIVER DEFINITION.
PUBLIC SECTION.
" ENTE時觸發
METHODS HANDLE_ENTER
IMPORTING E_MODIFIED ET_GOOD_CELLS.
PRIVATE SECTION.
ENDCLASS.
CLASS CL_EVENT_RECEIVER IMPLEMENTATION.
" 實現ENTER 事件方法
METHOD HANDLE_ENTER.
DATA GS_LAYOUT_ALV TYPE LVC_S_LAYO.
DATA : LV_STABLE TYPE LVC_S_STBL.
PERFORM FOM_REFRESH .
LV_STABLE-ROW = '1'.
LV_STABLE-COL = '1'.
GS_LAYOUT_ALV-CWIDTH_OPT = 'X'.
CALL METHOD GO_ALV_GRID->SET_FRONTEND_LAYOUT
EXPORTING
IS_LAYOUT = GS_LAYOUT_ALV.
CALL METHOD GO_ALV_GRID->REFRESH_TABLE_DISPLAY
EXPORTING
IS_STABLE = LV_STABLE.
CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
EXPORTING
CONTROL = GO_ALV_GRID.
CALL METHOD CL_GUI_CFW=>FLUSH.
ENDMETHOD. "HANDLE_MODIFY
ENDCLASS. "cl_event_receiver IMPLEMENTATION
最後去註冊事件方法:
SET HANDLER LO_EVENT->HANDLE_ENTER FOR GO_ALV_GRID.