쌓고 쌓다

[ABAP] ALV Variant 본문

SAP/ABAP

[ABAP] ALV Variant

승민아 2025. 1. 24. 20:33

Layout Variant 설정

ALV로 List Data를 Display하여 볼 때

보이는 컬럼의 순서를 바꾸거나, 숨김, 오름차순 정렬과 같이

레이아웃의 변경을 할 수 있다.

 

레이아웃의 변경 상태를 저장하고 Display 하는 방법이 있다.

 

CL_GUI_ALV_GRID 클래스로 생성한 GO_ALV_GRID 변수로

ALV에 Display 하기 위해 사용하는 SET_TABLE_FOR_FIRST_DISPLAY 메소드의 파라미터에

보면 IS_VARIANT, I_SAVE가 존재한다.

 

IS_VARIANT와 I_SAVE 파라미터가 변경된 레이아웃을 저장하고 Display 하는 파라미터이다.

 

DISVARIANT 타입으로 변수를 TOP에 선언하고

 

SET_TABLE_FOR_FIRST_DISPLAY 메소드 호출 이전에

GS_VARIANT-REPORT = <Program name>을 작성해 주자.

<Program name>에는 보통 호출한 프로그램명을 저장하는 시스템 변수 SY-CPROG가 온다.

 

IS_VARIANT 파라미터에 GS_VARIANT 값을 넣어준다.

 

여기까지 하면 레이아웃 버튼을 눌렀을 때

레이아웃을 선택하거나 변경하는 두 개의 옵션이 생긴다.

 

현재 IS_VARIANT를 넣어주고 I_SAVE는 설정하지 않은 space 상태라서

Change와 Select 모드만 생긴 것이다.

 

이제 저장하는 옵션을 추가하는 과정을 거쳐보자.

 

I_SAVE 파라미터에 'A' 값을 넣어주자.

 

그러면 레이아웃을 저장하는 기능도 생긴다.

 

IS_VARIANT도 할당하고, I_SAVE에 값을 주었기에

Change, Save, Select가 가능한 것이다.

 

'U' : Only User Related. 자신이 만든 VARIANT만 사용할 수 있다.

'X' : 다른 유저가 설정한 VARIANT도 사용할 수 있다.

'X' : 'U', 'X' 옵션을 합친 것

 

Layout Variant 사용

레이아웃을 변경한 후, Save Layout 버튼을 누른다.

 

Layout : 저장할 레이아웃명

Name : 레이아웃 설명

 

저장한 레이아웃은 Choose Layout으로 사용이 가능하다.

 

원하는 레이아웃을 눌러 사용한다.

 

파라미터로 레이아웃을 지정해서 볼 수도 있다.

 

DISVARAINT-VARIANT 타입으로 변수를 선언하고

 

이전에 선언한 GS_VARIANT 변수의 VARIANT 필드에

입력받은 파라미터를 넘겨주면 된다.

 

ALV로 List Data를 보기 전에 어떤 레이아웃으로 볼지 정하여 바로 볼 수 있다.

예시로 이전에 저장한 /LAYOUT1을 지정하고 있다.

Comments