ALV GRID

이벤트 MENU_BUTTON

ALV 툴바에 버튼을 추가하여 사용할때 1개의 버튼 아래에 여러개의 메뉴 추가하여 사용할 수 있다.

(아래그림 참조: 외부로 다운로드하는 스탠다드 툴바 클릭시 아래에 여러개의 메뉴가 보인다.)

 

 

1. 툴바 & 메뉴버튼 &  user_command 이벤트 선언

 

CLASS lcl_event_handler DEFINITION

PUBLIC SECTION.  

METHODS : handle_toolbar  FOR EVENT toolbar OF cl_gui_alv_grid            

                                           IMPORTING e_object e_interactive,         

 

                     handle_menu_button FOR EVENT menu_button OF cl_gui_alv_grid            

                                           IMPORTING e_object e_ucomm,

 

                     handle_user_command FOR EVENT user_command OF cl_gui_alv_grid            

                                           IMPORTING e_ucomm.

         

ENDCLASS.                  

 

2. 툴바 & 메뉴버튼 &  user_command 이벤트 구현

 

CLASS lcl_event_receiver IMPLEMENTATION.  

 

"handle_toolbar.

METHOD  handle_toolbar.

DATA: ls_toolbar TYPE stb_toolbar.

 

CLEAR:  ls_toolbar.

ls_toolbar-butn_type   = 2.             "타입을 2로 선언해야 버튼 아래 메뉴를 추가할수 있다.

ls_toolbar-function      =  'BUTTON'.

ls_toolbar-text            =  '버튼'.

APPEND ls_toolbar TO  e_object->mt_toolbar.

ENDMETHOD.           

 

"  handle_menu_button.       

METHOD  handle_menu_button. 

DATA: fcode TYPE ui_func.

 

CHECK e_ucomm =  'BUTTON'..

CLEAR: fcode.

fcode = 'MENU01'.

CALL METHOD   e_object->add_function

  EXPORTING  

    fcode     = fcode

     text       = '메뉴01'.

 

CLEAR: fcode.

fcode = 'MENU02'.

CALL METHOD   e_object->add_function

  EXPORTING  

    fcode     = fcode

     text       = '메뉴02.'

ENDMETHOD.       

 

"handle_user_command.

METHOD handle_user_command.

e_ucomm 에 따른 프로세스 추가

ENDMETHOD.          

 

ENDCLASS.               

 

 

3. AlV event 추가.

SET HANDLER: g_event->handle_toolbar            FOR g_grid

                           g_event->handle_menu_button  FOR g_grid.

 

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

필드 카탈로그의 속성- lvc_s_fcat  (0) 2022.11.29
ALV GRID 화면 분리 (CL_GUI_EASY_SPLITTER_CONTAINER)  (0) 2022.01.26
ALV : 이벤트 HANDLE_BUTTON_CLICK  (0) 2022.01.26
ALV Grid Edit 기능  (0) 2022.01.19
ALV GRID 툴바 제거 방법  (0) 2021.09.09