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 메서드는 더블 클릭 이벤트가 발생했을 때 수행될 동작을 정의합니다.