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

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

SAP ALV ROW Color 설정  (0) 2024.11.07
SAP ALV CELL Color 설정  (0) 2024.09.20
SAP ALV 특정 Cell edit 설정  (1) 2024.04.18
SAP ALV Hotspot 정리  (2) 2024.04.02
SAP ALV SubTotal(소계) 정리  (4) 2024.02.21