300x250
728x90

# SAP ALV Double Click event란


# ALV 이벤트 중 하나이며, 많이 쓰이는 Event 중에 하나이기도 한다. 

# 대부분 Detail 화면으로 넘어가거나, 상세정보확인할 때 사용하거나 등등 여러 가지 상황일 때 많이 쓰인다. 

 

 

사실 HotSpot과 거의 비슷하며, Event만 달라지기 때문에 참고용으로 보자!

2024.04.02 - [.SAP/..ABAP] - SAP ALV Hotspot 정리

 

SAP ALV Hotspot 정리

# HOTSPOT 란# Cell 별로 하이퍼링크? 링크? 처럼 상세한 정보를 보고싶을 때 쓰이기도 한다 # 예를 들어) 전표번호에 Hotspot을 걸어서 스탠다드와 연결 할 수도 있고, 다른 프로그램하고 연결 할 수도

potato98.tistory.com

 

 

# 여기서는 [이름]더블클릭 했을 때 팝업창이 나오게 만들어보자.

 

 

SAP ALV Doublc Click에 대해서 알아보자.

 

 

# INCLUDE 추가


# 순서에 맞게 Include를 추가하자.

 

( 순서 중요 )

# 추가하는 이유는 Class, Method( P01 )와 Method에 있는 PERFORM문( A01 )을 사용하기 위해서 만들었다.

 

이해가 안 되더라도 일단 넘어가 보자.

 

 

# Include P01 로직


# 01. 다음과 같이 Class Definition Class Implemenataion을 설정해 보자.

또한 이벤트 설정을 하기 위해서 REF TO을 통해 데이터 선언을 해보자.

 

# 02. CL_GUI_ALV_GRID에 있는 Event을 통해서 Double Click 설정해 보자.

 

# CL_GUI_ALV_GRID Events 참고

 

 # 03.  Class Implemenataion에 선언한 PERFORM문을 생성할 때, 앞에서 만들었던 Include A01로 선택해서 생성하면 된다.

*&---------------------------------------------------------------------*
*&  Include           ZTEST_03_GJP01
*&---------------------------------------------------------------------*
CLASS LCL_EVENT_RECEIVER01 DEFINITION.


  PUBLIC SECTION.

       METHODS HANDLE_DOUBLE_CLICK
           FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
           IMPORTING
               E_COLUMN
               E_ROW
               ES_ROW_NO.


  PROTECTED SECTION.


  PRIVATE SECTION.


ENDCLASS.                    "LCL_EVENT_RECEIVER01 DEFINITION"
CLASS LCL_EVENT_RECEIVER01 IMPLEMENTATION.

  METHOD HANDLE_DOUBLE_CLICK.

    PERFORM ALV_CL_DOUBLE_CLICK
        USING
              E_COLUMN
              E_ROW
              ES_ROW_NO.


  ENDMETHOD.

ENDCLASS.                    "LCL_EVENT_RECEIVER IMPLEMENTATION"

DATA:
  G_EVENT_RECEIVER01 TYPE REF TO LCL_EVENT_RECEIVER01.

 

# PROCESS BEFORE OUTPUT( PBO )


# Set Handler 설정

# 다음과 같이 PERFORM을 생성해줘야 한다. 

생성을 할 때에는 앞에서 만들어줬던 (Include A01)에 만들어줘야 한다.

# F01에 만들면 Include위치 때문에 에러가 발생한다. 

 

# Include A01 Event 로직 추가

# 위에서 선언했던 Class을 통해서 SET HANDLER 설정을 해줘야 한다. 

# 여기서 설정을 해줘야 Event 활성화되기 때문에 바로바로 추가해 보자.

FORM SET_EVENT .

  CREATE OBJECT G_EVENT_RECEIVER01.

  SET HANDLER
    G_EVENT_RECEIVER01->HANDLE_DOUBLE_CLICK FOR GO_GRID.

ENDFORM.                    " SET_EVENT

 

# Create Object 참고

 

 

 

# INCLUDE A01 로직 추가


# 01. PERFORM문만 만들고 넘어간 Include A01로 들어가 보자.

 

여기서 사용되는 

# P_COLUMN : 더블클릭 했을 때 Column 값 

# P_ROW : 선택한 Row Index 값을 가져온다.

# PS_ROW_NO : 선택한 Row ID값을 가져온다.

 

# 예를 들어) 여기서 2번째 "한익환"을 선택했을 때 다음과 같이 값들을 가져온다.

 

# 02. 그렇기 때문에 조건문을 통해서 해당하는 Column에 따라서 로직변경하면 되는 것이다. 

 

# 03. 실행을 해보면? 

# 중간중간 건너뛰는 거 말고는 Double Click 쉽게 작동할 수 있다!

 

끝!

 

도움이 되셨으면 하단에 있는 광고 한번씩 눌러주세유!!

728x90