125 lines
4.1 KiB
ABAP
125 lines
4.1 KiB
ABAP
*&---------------------------------------------------------------------*
|
|
*& 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(<ls_header>) INDEX ls_mod_header-row_id.
|
|
* IF sy-subrc = 0 AND <ls_header>-mode = gc_mode-disp.
|
|
* <ls_header>-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(<ls_item>) INDEX ls_mod_item-row_id.
|
|
* IF sy-subrc = 0 AND <ls_item>-mode = gc_mode-disp.
|
|
* <ls_item>-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
|