본문 바로가기

Study

STUDY-3

ALV

ALV는 ABAP List Viewer의 약자로 리스트 화면에 데이터를 조회하거나, 조회된 데이터를 수정/변경하는 목적으로 사용합니다. ALV는 T-CODE SE16을 통해 확인하실 수 있습니다.

 

* SE16: 데이터 브라우저 관련 트랜잭션 코드

 

ALV는 3가지 방법으로 출력이 가능합니다.

1. 컨테이너 형태: 서브 스크린 형태로 ALV를 사용합니다. 주로 이 형태로 ALV를 많이 사용합니다.

2. 풀 스크린 형태: 전체 화면으로 ALV를 사용합니다.

3. 리스트: 텍스트 형태로 ALV를 사용합니다.

 

ALV의 출력 예시는 다음과 같습니다.

위 사진 형태로 출력되는 것이 ALV로 ALV는 실무에서 많이 사용하는 프로그램입니다.

 

ALV는 크게 함수(Function)를 이용하는 방법과 GRID 컨트롤을 이용하는 방법 2가지가 있습니다.

 

함수를 이용하는 방법은 ABAP에서 제공하는 ALV 함수 모듈을 사용하여 간단하게 ALV를 구현할 수 있습니다. 예를 들어 'REUSE_ALV_GRID_DISPLAY' 함수 모듈을 사용하여 ALV를 표시할 수 있습니다.

 

하지만 함수를 이용하여 ALV 프로그램을 출력하면 화면 제어가 어려워지기 때문에 현재는 ALV GRID 기술을 더 많이 사용합니다. 지금부턴 ALV GRID 기술에 대해 설명할까 합니다.

 

ALV 프로그램은 인스턴스를 사용하며, CL_GUI_ALV_GRID 클래스를 참고하는 변수로 정의되어 있습니다.

먼저 객체 참조 변수를 선언해야 합니다. 선언 구문은 다음과 같습니다.

DATA: GV_GRID TYPE REF TO CL_GUI_ALV_GIRD.

 

위 코드에서 GV_GRID 변수는  CL_GUI_ALV_GRID 클래스를 참고하는 변수입니다.

선언 후 CREATE OBJECT 구문으로 클래스의 생성자를 호출하여 ALV GRID 인스턴스를 생성합니다. 생성 구문은 다음과 같습니다.

CREATE OBJECT GV_GRID.

 

ALV 인스턴스를 화면에 보이게 하려면 스크린과 ALV GRID 컨트롤을 연결하는 SAP 컨테이너컨트롤이 반드시 있어야합니다.

SAP 컨테이너는 연결고리 같은 역할을 하도록 SAP 컨트롤을 자신의 영역에 포함하는 컨테이너 역할을 하게 된다고 생각하시면 됩니다.

 

SAP 컨트롤의 종류로는 SAP Tree, SAP Picture, SAP Textedit, SAP Splitter가 있습니다.

 

SAP 컨테이너은 가지의 종류가 있습니다 종류는 다음과 같습니다.

1. SAP Custom Container: 스크린 페인터를 사용하는 일반적인 화면에서 영역을 정의합니다.

클래스: CL_GUI_CUSTOM_CONTAINER

2. SAP Dialog Box Container: Dialog Box 또는 Full Screen에서 Dialog Box 형태로 보이게 합니다.

클래스: CL_GUI_ DIALOGBOX _CONTAINER  

3. SAP Docking Container: 스크린 영역의 각 모서리에 붙어서 크기를 조절할 수 있게 합니다. Custom Container와 함께 자주 쓰이는 형태입니다.

클래스: CL_GUI_DOCKING_CONTAINER  

4. SAP Splitter Container: 여러 영역으로 컨테이너를 분리할 때 사용합니다.

클래스: CL_GUI_SPLITTER_CONTAINER  

5. SAP Custom Container: Splitter Container와 비슷한 역할을 하며, 분리된 영역을 상하좌우로 한번 더 분리할 수 있습니다.

클래스: CL_GUI_EASY_SPLITTER_CONTAINER

 

이렇게 여러 가지 종류가 있지만 실습은 SAP Custom Container를 중점으로 할 생각입니다.

1. 먼저 프로그램을 생성합니다

2. 스크린을 만들고 스크린의 레이아웃을 통해 커스텀 컨트롤을 만들어줍니다.

* 커스텀 컨트롤은 빨간 박스의 아이콘으로 만들 수 있습니다.

3. 스크린 컨트롤의 이름을 정의하고 스크린 컨트롤을 더블 클릭하여 Attributes의 Resizing 항목을 확인합니다.

이후 Resizing 항목의 Vertical, Horizontal 항목을 체크해줍니다.

* Resizing 항목의 Vertical, Horizontal 항목을 체크할 경우 스크린 크기가 자동으로 조절됩니다.

4. 100번 스크린의 엘리먼트 리스트의 맨 마지막 부분에 OK_CODE를 입력합니다.

입력을 완료하면 Flow Logic 탭으로 이동하여 주석 처리된 모듈을 전부 활성화하고 CLEAR_OKCODE 모듈을 새로 생성합니다.

5. 모듈 생성이 완료되었으면 해당 모듈에 구문을 작성합니다.

5. 컨테이너 참조 변수를 정의합니다. (* 빨간 박스 부분을 보시면 됩니다.)

* 실습은 TOP INCL를 생성하여 선언했지만 메인 프로그램에서 선언하셔도 됩니다.

6. 100번 스크린의 Flow Logic 탭으로 이동하여 PBO에 모듈을 생성합니다.

7. 모듈에서 ALV을 선언하기 위해 Pattern을 클릭하여 ABAP Objects Patterns 항목을 선택합니다.

이후 Create Object 라디오 버튼을 클릭하고 참조 변수와 컨테이너를 입력합니다.

* 참조 변수는 INSTANCE 입력 필드에 컨테이너는 CLASS 입력 필드에 입력하시면 됩니다.

8. 아래 구문과 같이 작성하시면 스크린과 ALV GRID가 정상적으로 연결된 것을 확인하실 수 있습니다.

'Study' 카테고리의 다른 글

쉼표  (1) 2024.01.29
Study-4  (0) 2024.01.27
1차 실기 테스트 후기  (1) 2024.01.25
STUDY-2  (0) 2024.01.23
STUDY-1  (0) 2024.01.23