ALV GRID

ALV : 이벤트 HANDLE_BUTTON_CLICK

 

 

ALV 필드 내에 버튼을 생성하여 사용하는 방법에 대해 알아보겠습니다.

 

 

1. 테이블내에 STYLE 필드 추가

 

DATA : BEGIN OF gt_disp OCCURS 0,

            matnr     LIKE   mara-matnr,

            cellstyle  TYPE lvc_t_styl,

         END OF gt_disp.

 

 

2. ALV LAYOUT 선언

 

GS_LAYOUT-STYLEFNAME   = 'CELLSTYLE'.  *대문자

              

 

3. 셀속성 지정(버튼)

 

DATA : ls_cellstyle TYPE lvc_s_styl.

 

*예시: gt_disp-matnr이 ‘TEST’ 일때만 버튼으로 만들기

 

LOOP AT gt_disp.

 

IF gt_disp-matnr = ‘TEST’.

CLEAR: ls_cellstyle.      

ls_cellstyle-fieldname =  ‘MATNR’.        

ls_cellstyle-style = cl_gui_alv_grid=>mc_style_button.      

INSERT ls_cellstyle INTO TABLE gt_disp_cellstyle.  

MODIFY gt_disp TRANSPORTING cellstyle.  

ENDIF.

 

ENDLOOP.

 

 

4. 이벤트 선언/구현

 

 

PUBLIC SECTION.  

 

CLASS lcl_event_handler DEFINITION

METHODS : handle_button_click  FOR EVENT button_click

                                                       OF cl_gui_alv_grid            

                                           IMPORTING es_col_id                                 

                                                           es_row_no.

ENDCLASS.                  

 


CLASS lcl_event_receiver IMPLEMENTATION.  

 

METHOD handle_button_click.    

PERFORM handle_button_click USING es_col_id  es_row_no.  

ENDMETHOD.                   

 

ENDCLASS.               


FORM handle_button_click  USING   ps_col_id   TYPE lvc_s_col 

                                                ps_row_no TYPE lvc_s_roid.

 

READ TABLE gt_disp INDEX  ps_row_no-row_id

 

**사용할 로직 추가

 

ENDFORM.

 

 

5. AlV event 추가.

SET HANDLER grf_event->handle_button_click  FOR grf_grid.

 

 

 

 

 

'ALV GRID' 카테고리의 다른 글

이벤트 MENU_BUTTON  (0) 2022.11.02
ALV GRID 화면 분리 (CL_GUI_EASY_SPLITTER_CONTAINER)  (0) 2022.01.26
ALV Grid Edit 기능  (0) 2022.01.19
ALV GRID 툴바 제거 방법  (0) 2021.09.09
ALV 화면 분리 (CL_GUI_SPLITTER_CONTAINER)  (0) 2021.07.21