[ABAP] LCL_EVT_RECEIVER (정의, 구현, 정의 지연)의 연관관계

J._NA 개발일지·2024년 7월 22일
0

CLASS LCL_EVT_RECEIVER DEFINITION DEFERRED,
CLASS LCL_EVT_RECEIVER DEFINITION,
CLASS LCL_EVT_RECEIVER IMPLEMENTATION 연관관계

  • 주어진 코드는 ABAP 객체 지향 프로그래밍에서 이벤트 핸들링을 구현하기 위한 클래스 정의 및 구현임, 이 세 클래스(정의, 구현, 정의 지연)의 연관관계를 이해하기 위해 각 부분을 자세히 살펴보자.

  • LCL_EVT_RECEIVER 클래스는 ALV(Grid Control)의 더블 클릭 이벤트를 처리하기 위한 이벤트 리시버 클래스

1. CLASS LCL_EVT_RECEIVER DEFINITION DEFERRED

정의 지연(Deferred Definition): LCL_EVT_RECEIVER 클래스의 정의를 나중에 제공할 것임을 나타냄. 이는 순환 참조 문제를 방지하기 위해 사용됩니다.
데이터 선언: GCL_EVENT는 LCL_EVT_RECEIVER 클래스의 인스턴스를 참조하는 변수이다.

2. CLASS LCL_EVT_RECEIVER DEFINITION

클래스 정의: LCL_EVT_RECEIVER 클래스의 실제 정의
메서드 정의: HANDLE_DOUBLE_CLICK 메서드는 CL_GUI_ALV_GRID 클래스의 DOUBLE_CLICK 이벤트를 처리하기 위해 정의된 메서드입니다
IMPORTING 파라미터: 더블 클릭 이벤트가 발생했을 때 전달되는 행 번호(E_ROW), 열 번호(E_COLUMN), 그리고 행 정보(ES_ROW_NO)를 가져옵니다.
데이터 선언: MV_ERROR_IN_DATA는 클래스 내에서 사용되는 데이터 멤버임.

3. CLASS LCL_EVT_RECEIVER IMPLEMENTATION

클래스 구현: LCL_EVT_RECEIVER 클래스의 구현 부분
메서드 구현: HANDLE_DOUBLE_CLICK 메서드는 현재는 주석 처리된 PERFORM DOUBLE_CLICK 문을 통해 실제 더블 클릭 이벤트를 처리하는 로직을 구현할 수 있음.

연관관계 요약

  • 클래스 정의 지연(Deferred Definition):
    클래스 정의가 나중에 제공될 것임을 선언합니다.
    이는 클래스 선언 순서로 인해 발생할 수 있는 문제를 방지합니다.

  • 클래스 정의:
    LCL_EVT_RECEIVER 클래스의 실제 정의를 포함합니다.
    ALV Grid의 더블 클릭 이벤트를 처리하기 위한 메서드(HANDLE_DOUBLE_CLICK)와 데이터를 포함.

  • 클래스 구현:
    LCL_EVT_RECEIVER 클래스의 메서드 구현을 포함합니다.
    HANDLE_DOUBLE_CLICK 메서드는 더블 클릭 이벤트가 발생했을 때 수행될 동작을 정의합니다.

전체적인 흐름

  • 정의 지연: 클래스의 실제 정의가 나중에 제공될 것임을 선언하여, 클래스 간의 순환 참조 문제를 방지합니다.
  • 클래스 정의: LCL_EVT_RECEIVER 클래스의 메서드와 데이터를 정의합니다. 이 클래스는 ALV Grid의 더블 클릭 이벤트를 처리하는 데 사용됩니다.
  • 클래스 구현: LCL_EVT_RECEIVER 클래스의 메서드를 구현합니다. 여기서는 더블 클릭 이벤트를 처리하기 위한 로직을 작성합니다.
profile
아밥 & 프론트엔드 개발자

0개의 댓글