쌓고 쌓다

[ABAP] ALV 생성 (Container Control, ALV Grid Control) 본문

SAP/ABAP

[ABAP] ALV 생성 (Container Control, ALV Grid Control)

승민아 2025. 1. 22. 21:37

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을 눌러서

표시할 데이터 영역을 설정한다.

 

Screen 모습

 

생성한 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 선언은 다음과 같이 한다.

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
Comments