SAP_ABAP

SAP_ABAP ALV_이벤트

Hvvvi 2021. 11. 1. 11:11
728x90

ALV GRID에서 더블클릭 등의 사용자 액션에 반응하는 이벤트를 추가할 수 있다.

 

  1. 이벤트 선언 - CL_GUI_ALV_GRID에 기본 매서드 (SE24)
  2. 매서드 정의 - 파라미터에 맞게 적용 (e_row = 현재 선택된 라인 인텍스 번호,  e_column = 현재 선택된 칼럼 이름)
    1
    2
    3
    4
    5
    6
    7
    CLASS lCl_event_receiver DEFINITIOIN,
     PUBLIC SECTION.
      METHODS:
       handle_double_click
       FOR EVENT double_click OF CL_GUI_ALV_GRID
       importing e_row e_column.
    ENDCLASS.
    cs
     
  3. 메서드 등록 -
    1
    2
    3
    DATA : event_receiver TYPE REF TO lcl_event_receiver.
    CREATE OBJECT event_receiver.
    SET HANDLER event_receiver->handle_double_click FOR g_grid.
    cs
     
  4. 이벤트 호출 - CL_GUI_ALV_GRID 화면 더블클릭 -> RAISE_EVENT 메서드 실행 -> USER COMMAND 이벤트 발생
  5. 이벤트 핸들러 메서드 실행 - ALV에서 더블클릭에 작동하는 스크립트 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
REPORT ZALV_METHOD.
 
CLASS lcl_event_receiver DEFINITION.
 PUBLIC SECTION.
  METHODS:
  handle_doubl e_c lick
    FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
     IMPORTING e_row e_column.
ENDCLASS.
 
CLASS lcl_event_receiver IMPLEMENTATION.
 METHOD hsuidle_double_click.
    LEAVE TO SCREEN 0.
 ENDMETHOD.
ENDCLASS.       
*이벤트 핸들러 메서드를 포함하는 클래스를 정의하고 IMPLEMENT 한다.
 
 
 
DATA : event_receiver TYPE REF TO lcl_event_receiver.  
*클래스를 참고하는 객체 참조 변수를 정의한다.
 
 
CREATE OBJECT event_receiver.
SET HANDLER event_receivGr->handle_double_click FOR g_grid.  
*오브젝트를 생성하여 이벤트 핸둘러 메서드룰 등록한다.
cs

 

728x90