ALV Layout
ALV에서 Layout은 화면 표시 방식을 정의하는 설정
Layout 변수를 선언할 때는 LVC_S_LAYO 구조를 사용하며,
SET_TABLE_FOR_FIRST_DISPLAY 메서드를 통해 전달한다
Layout Structure Option들을 자세히 확인하고 싶다면?
LVC_T_SCOL
ALV 화면에 색상을 지정해 주기 위해서 ALV에서 보여줄 테이블의 타입에 LVC_T_SCOL 타입의 필드를 하나 선언한다

ALV에 색상 칠하는 방식을 배울 때는 그냥 따라하는데 급해서 몰랐는데 자세히 살펴보니 해당 타입은 테이블이다




아주 간단하게 색상 지정하는 방식을 살펴보면
gs_layout에는 테이블 타입을 만들 때 작성한 필드 명을 전달하고 이 레이아웃을 set_table_for_first_display 메서드에 전달한다
cell_color 필드 값에 내가 색칠하고 싶은 필드명과 색상을 APPEND하면 이 색상이 테이블에 출력되는 방식이다
이 때 출력 테이블에 색상 정보가 존재하더라도 Layout에 CTAB_FNAME 설정 안해주면 ALV는 해당 정보 무시
즉, Layout에 선언되지 않은 기능은 동작하지 않는다
코드를 확인하다가 생긴 한가지 의문
CELL_COLOR 필드의 데이터 타입이 분명 테이블인데...
그럼 해당 테이블에 다른 field name과 색상의 structure를 APPEND 해주면 두 필드의 색상을 모두 칠할 수 있지 않을까?


두 필드의 색상이 바뀌는걸 바로 확인 가능
Layout vs Field Catalog
둘 다 화면에 영향을 주는데 왜 굳이 나눠져있는걸까
| 구분 | 역할 |
| Layout | 행, 셀, 전체 화면 전체 제어 |
| Field Catalog | Column 단위 속성 정의 |
제어하는 영역이 둘 사이의 가장 큰 차이
특히 Layout은 출력 테이블 구조와 직접 연결되는 경우가 많다
'ABAP Study' 카테고리의 다른 글
| [ABAP] Field Catalog (0) | 2026.01.05 |
|---|---|
| [ABAP] Grid ALV & Class (2) | 2025.12.29 |