순서를 말로 표현하기가 어려워서 정리:
이벤트 처리를 위해 먼저 핸들러 클래스를 정의 및 구현하고,
그다음 인스턴스를 생성한 후 SET HANDLER 문으로 ALV와 이벤트를 연결합니다
클래스 기반 UI인 ALV(Grid) 와 같은 컴포넌트에서는
사용자의 특정 액션(F4 호출, 셀 클릭, 더블클릭 등)에 따라
자동으로 반응하는 로직을 구현해야 할 때가 많습니다.
이때 사용하는 메커니즘이 바로 이벤트 핸들러(Event Handler) 입니다.
CL_GUI_ALV_GRID 객체는 해당 이벤트를 발생시키고 | 순서 | 설명 |
|---|---|
| ① | 이벤트 핸들러 클래스를 선언한다 |
| ② | METHOD on_event FOR EVENT ... OF cl_gui_alv_grid 형식으로 이벤트 메소드를 구현한다 |
| ③ | SET HANDLER 문으로 ALV 객체와 이벤트 핸들러 메소드를 연결한다 |
CLASS lcl_handler DEFINITION.
PUBLIC SECTION.
METHODS on_f4 FOR EVENT onf4 OF cl_gui_alv_grid
IMPORTING e_fieldname es_row_no er_event_data.
ENDCLASS.
CLASS lcl_handler IMPLEMENTATION.
METHOD on_f4.
" F4 키 눌렀을 때 실행될 로직 작성
ENDMETHOD.
ENDCLASS.
" ALV 생성 후 이벤트 핸들러 연결
DATA: go_handler TYPE REF TO lcl_handler.
CREATE OBJECT go_handler.
SET HANDLER go_handler->on_f4 FOR go_grid.
이벤트 핸들러는 사용자 액션에 대한 반응 로직을 정의하는 구조
SET HANDLER로 ALV 객체와 연결해 두면
→ 사용자의 행동에 따라 자동으로 메소드가 호출됨
ALV를 인터랙티브하게 만들기 위해 핵심적으로 사용되는 개념