쌓고 쌓다
[ABAP] ALV 생성 (Container Control, ALV Grid Control) 본문
ALV (ABAP LIST VIEWR)
ALV는 Control Area 위에 Container Control 위에 ALV Grid Control이 존재한다.
1. Control Area 만들기
메인 프로그램에 CALL SCREEN 100.을 작성하고
100을 더블클릭하여 100번 스크린을 생성해주자.
100번 Screen Painter에서 Custom Control을 눌러서
표시할 데이터 영역을 설정한다.
생성한 Custom Control의 Name을 AREA로 작성했다.
100번 스크린의 Element List에 OK_CODE를 추가한다.
100번 스크린의 PBO, PAI의 STATUS_0100과 USER_COMMAND_0100를
주석 풀고 더블클릭하여 생성해주자.
2. Object, Ref
CREATE OBJECT 구문으로 Object를 생성할 수 있다.
이 Object를 가리키는 변수를 Ref 변수라고 한다.
Container Control의 Class Name은
CL_GUI_CUSTOM_CONTAINER이다.
ALV Grid Control의 Class Name은
CL_GUI_ALV_GRID이다.
Container Control의 오브젝트를 가리키는 Ref 변수는 아래의 형태를 갖는다.
variable_name : Ref 변수명
class_name : 클래스명
3. Container Control & ALV Grid Control 생성
Container Control Ref, ALV Grid Control의 Ref 선언은 다음과 같이 한다.
100번 스크린의 PBO에 INIT_ALV 모듈을 추가한다.
INIT_ALV에 이제 Container Control, ALV Grid Control을 생성하는 코드를 작성하자.
생성하는 코드는 IF문으로 우선 Container가 존재하지 않을때 생성한다.
IF문안에 이제 생성하는 코드를 넣어보자.
GO_CONTAINER Ref 변수에 Object를 생성하자.
Pattern - ABAP Objects Patterns - Create Object
Instance : GO_CONTAINER
CLASS : CL_GUI_CUSTOM_CONTAINER
CONTAINER_NAME의 값은 이전에 Screen Painter에서 생성한
Custom Control의 Name을 넣어주자.
Name을 "AREA"로 작성했었다.
이제 "GO_ALV_GRID"에 Object를 생성하자.
I_PARENT에 Container Control 변수명을 넣어주자.
3. List Data
Instance : ALV GRID 변수명
을 넣어 호출한다.
I_STRUCTURE_NAME : Data Dictionary의 타입만이 올 수 있다. ALV에 표시되는 컬럼은 어떻게할것인지 Category 를 설정한다.
IT_OUTTAB : ALV Grid에 Display할 List. Internal Table 이름이 와야한다.
'SAP > ABAP' 카테고리의 다른 글
[ABAP] ALV Variant (0) | 2025.01.24 |
---|---|
[ABAP] Selection Screen Block, Comment, Line, Tabbed Block (0) | 2025.01.21 |
[ABAP] WRITE 기본 문법, SELECTION-OPTIONS (0) | 2025.01.21 |
[ABAP] Subscreen, Tabstrip (0) | 2025.01.18 |
[ABAP] SELECT-OPTIONS (0) | 2025.01.18 |