SAP/ABAP ALV

(ABAP ALV) CL_GUI_ALV_GRID Event

haramang 2021. 7. 4. 14:31

* 계속 업데이트 될 예정

 

- ALV Event 등록 방법

1. Event handler Class 정의

  • Event handler Class를 만든다(LCL_EVENT_RECEIVER)
  • Event handler class 내에 이벤트 Method 등록
예)
CLASS ZCL_EVENT_RECEIVER DEFINITION.
  PUBLIC SECTION.

  * Double Click Event of CL_GUI_ALV_GRID Class
  METHODS : HANDLE_DOUBLE_CLICK
  FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
  IMPORTING E_ROW
                  E_COLUMN.
 
  * Hotspot click event of CL_GUI_ALV_GIRD Class
  METHODS : HANDLE_HOTSPOT_CLICK
  FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
  IMPORTING  E_ROW_ID
                   E_COLUMN_ID.

ENDCLASS.
  • Event handler class 내에 이벤트 정의하고 Form subroutine을 사용하여 이벤트 정의
예)

CLASS ZCL_EVENT_RECEIVER IMPLEMENTATION.

    METHOD HANDLE_DOUBLE_CLICK.

    PERFORM HANDLE_DOUBLE_CLICK USING E_ROW

                                      E_COLUMN.

    ENDMETHOD.

 

 

    METHOD HANDLE_HOTSPOT_CLICK.

      PERFORM HANDLE_HOTSPOT_CLICK USING E_ROW_ID

                                                                E_COLUMN_ID.

    ENDMETHOD.

 

 

    METHOD HANDLE_HOTSPOT_CLICK.

      PERFORM HANDLE_HOTSPOT_CLICK USING E_ROW_ID

                                         E_COLUMN_ID.

    ENDMETHOD.

 

ENDCLASS.

2. Event handler class를 CL_GUI_ALV_GRID 변수에 등록한다.

예)
DATA : GO_GRID    TYPE REF TO CL_GUI_ALV_GRID,
          GO_EVENT_RECEIVER TYPE REF TO ZCL_EVENT_RECEIVER.     

CREATE OBJECT GO_EVENT_RECEIVER.     
SET HANDLER :  GO_EVENT_RECEIVER->HANDLE_DOUBLE_CLICK FOR GO_GRID,
                      GO_EVENT_RECEIVER->HANDLE_HOTSPOT_CLICK FOR GO_GRID.

 

- ALV Event 종류

  Class Builder(SE24)에서 CL_GUI_ALV_GRID을 확인한 후, Events tab으로 이동하면 모든 Event들을 볼 수 있다.

 

- ALV Event 정리

Event Parameters Opt Type Description
DOUBLE_CLICK E_ROW O Type LVC_S_ROW 현재 선택 된 Row Index 더블클릭 했을 때 발생하는 Event
E_COLUMN O Type LVC_S_COL 현재 선택 된 Col name
ES_ROW_NO O Type LVC_S_ROID 현재 선택된 Row ID
HOTSPOT_CLICK E_ROW_ID O Type LVC_S_ROW 현재 선택 된 Row Index Hotspot(밑줄 쳐지고 클릭이 가능한)을 클릭했을 경우 발생하는 Event
E_COLUMN_ID O Type LVC_S_COL 현재 선택 된 Col name
ES_ROW_NO O Type LVC_S_ROID 현재 선택된 Row ID
TOOLBAR E_OBJECT O TYPE Ref To CL_ALV_EVENT_TOOLBA_SET TOOLBAR ITAB ALV가 제공해주는 아이콘 외에 개발자가 임의로 추가할 때 사용
E_INTERACTIVE O Type CHAR01 Flag 셋팅 시, 툴바 초기화
USER_COMMAND E_UCOMM O TYPE SY-UCOMM User command 변수 이벤트에서 추가 된 아이콘에 function 추가
BUTTON_CLICK ES_COL_ID O TYPE LVC_S_COL 현재 선택된 Col ID ALV GRID에 추가된 Button을 클릭 했을 경우 발생하는 Event
ES_ROW_NO O TYPE LVC_S_ROID 현재 선택된 Row ID
             
             
             

'SAP > ABAP ALV' 카테고리의 다른 글

(ABAP ALV) Data_Changed Event  (0) 2021.07.10
(ABAP ALV) Field Catalog 정리  (0) 2021.07.10
(ABAP ALV) Field Catalog  (0) 2021.07.04
(ABAP ALV) ALV Layout  (0) 2021.07.04
(ABAP ALV) ALV 개발 시 유용한 Method / Function Module  (0) 2021.07.04