*&---------------------------------------------------------------------* *& Include ZCOM0010C01 *&---------------------------------------------------------------------* CLASS lcl_events DEFINITION. PUBLIC SECTION. * METHODS on_toolbar FOR EVENT toolbar OF cl_gui_alv_grid * IMPORTING e_object e_interactive sender. * METHODS on_user_command FOR EVENT user_command OF cl_gui_alv_grid * IMPORTING e_ucomm sender. METHODS on_double_click FOR EVENT double_click OF cl_gui_alv_grid IMPORTING e_row e_column sender. * METHODS on_data_changed FOR EVENT data_changed OF cl_gui_alv_grid * IMPORTING er_data_changed sender. ENDCLASS. CLASS lcl_events IMPLEMENTATION. * METHOD on_toolbar. * IF e_object IS INITIAL. * RETURN. * ENDIF. * ** IF sender = go_grid. ** __alv_toolbar e_object 1 'ADDH' gc_icon-create '그룹코드 추가' '그룹 추가' 0 space. ** __alv_toolbar e_object 2 'DELH' gc_icon-delete '선택 그룹 삭제' '그룹 삭제' 0 space. ** __alv_toolbar e_object 3 'SAVEH' icon_system_save '그룹코드 저장' '그룹 저장' 0 space. ** ELSEIF sender = go_grid1. ** __alv_toolbar e_object 1 'ADDI' gc_icon-create '상세코드 추가' '상세 추가' 0 space. ** __alv_toolbar e_object 2 'ADDIM' gc_icon-create '상세코드 복수 추가' '복수열 추가' 0 space. ** __alv_toolbar e_object 3 'DELI' gc_icon-delete '선택 상세 삭제' '상세 삭제' 0 space. ** __alv_toolbar e_object 4 'SAVEI' icon_system_save '상세코드 저장' '상세 저장' 0 space. ** ENDIF. * ENDMETHOD. * METHOD on_user_command. * ok_code_0100 = e_ucomm. * CALL METHOD cl_gui_cfw=>set_new_ok_code * EXPORTING new_code = ok_code_0100. * ENDMETHOD. METHOD on_double_click. perform handle_double_click using e_row e_column sender. ENDMETHOD. * METHOD on_data_changed. * IF sender = go_grid. * LOOP AT er_data_changed->mt_mod_cells INTO DATA(ls_mod_header). * READ TABLE gt_header ASSIGNING FIELD-SYMBOL() INDEX ls_mod_header-row_id. * IF sy-subrc = 0 AND -mode = gc_mode-disp. * -mode = gc_mode-modify. * ENDIF. * ENDLOOP. * ELSEIF sender = go_grid1. * LOOP AT er_data_changed->mt_mod_cells INTO DATA(ls_mod_item). * READ TABLE gt_item ASSIGNING FIELD-SYMBOL() INDEX ls_mod_item-row_id. * IF sy-subrc = 0 AND -mode = gc_mode-disp. * -mode = gc_mode-modify. * ENDIF. * ENDLOOP. * ENDIF. * ENDMETHOD. ENDCLASS. *---------------------------------------------------------------------* * LOCAL CLASSES: Definition *---------------------------------------------------------------------* CLASS lcl_alv_grid DEFINITION INHERITING FROM cl_gui_alv_grid. PUBLIC SECTION. METHODS: set_optimize_all_cols. METHODS: set_cursor IMPORTING row TYPE i col TYPE i. METHODS: set_fixed_column. METHODS: set_row_resize. METHODS: set_err_cells IMPORTING it_err TYPE lvc_t_err. ENDCLASS. "LCL_AlV_GRID DEFINITION *---------------------------------------------------------------------* * CLASS LCL_AlV_GRID IMPLEMENTATION *---------------------------------------------------------------------* CLASS lcl_alv_grid IMPLEMENTATION. METHOD set_optimize_all_cols. CALL METHOD me->optimize_all_cols EXPORTING include_header = 1. ENDMETHOD. "SET_OPTIMIZE_ALL_COLS METHOD set_cursor. CALL METHOD me->set_current_cell_base EXPORTING row = row col = col. ENDMETHOD. " SET_CURSOR METHOD set_fixed_column. CALL METHOD me->set_fixed_cols EXPORTING cols = 5. ENDMETHOD. "SET_FIXED_COLUMN METHOD set_row_resize. CALL METHOD me->set_resize_rows EXPORTING enable = 1. ENDMETHOD. " SET_ROW_RESIZE METHOD set_err_cells. CALL METHOD me->set_error_cells EXPORTING cell_table = it_err EXCEPTIONS error = 1 OTHERS = 2. ENDMETHOD. "GET_CURRENT_COL ENDCLASS. "LCL_ALV_GRID IMPLEMENTATION