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 |