쌓고 쌓다

CREATE_DYNAMIC_TABLE과 LVC_T_SCOL 본문

SAP/ABAP

CREATE_DYNAMIC_TABLE과 LVC_T_SCOL

승민아 2026. 3. 12. 22:50
반응형

CREATE_DYNAMIC_TABLE 펑션을 사용하면

필드 카탈로그를 넘겨주어 그에 맞는 Internal Table을 뽑아낼 수 있다.

 

이것으로 동적 ALV를 만들었다.

(참고로 필드 카탈로그 타입 안지정해서 넣으면 기본값은  C(11)로 컬럼이 만들어짐)

 

그런데 셀 색깔을 위해서 Internal Table에 LVC_T_SCOL 타입의 필드가 필요하다.

 

어떻게 Internal Table에 LVC_T_SCOL 필드를 넣을 수 있을까?

 

필드 카탈로그로 <GT_BOOK> 테이블을 만드는 과정은 그대로이다.

 

다음 과정을 거쳐서 필드 카탈로그를 추가해주면 된다.

 

DDIC에 LVC_T_SCOL 타입의 필드를 갖는 구조체를 만든다.

 

필드 카탈로그는 위와 같이 구성한다.

TECH 값을 꼭 주도록하자.

기술적 필드로 사용하겠다는 표시이다.

 

REF_TABLE : 구조체 만들었을때 그 이름

REF_FIELD : 구조체에 추가한 LVC_T_SCOL 타입의 필드명

 

그러면 <GT_BOOK>에 Internal Table 필드가 하나 추가된것을 확인할 수 있다.

 

CTAB은 Structure: deep 타입이다.

 

구성을 보면 셀 타입을 넣기위해 필요한 LVC_T_SCOL 타입인것을 확인할 수 있다.

 

그러면 필드 심볼 테이블인 <GT_BOOK>에

LVC_T_SCOL 필드에는 어떻게 접근하고 값을 넣어줄까?

 

일반 필드들은 다음과 같이 동적으로 생성된 테이블 구조에 맞는 WorkArea를 만들어서 넣었다.

 

 

LVC_T_SCOL 필드에는?

 

다양한 방법이 있지만

다음 방법이 간단하다..

 

LVC_T_SCOL의 라인 타입인 LVC_S_SCOL을 선언

 

필드심볼로 인터널 테이블인 <GT_BOOK>에 대한 WorkArea(<FS_WA>)를 가져오고

이 WorkArea가 갖는 셀 색깔을 위한 LVC_T_SCOL 타입의 필드를 <FS_CTAB_ITAB>에 할당할 계획이다.

 

위 사진처럼 LVC_S_SCOL 타입의 필드 값을 가져오고

값을 할당하고 <FS_CTAB_ITAB>에 APPEND 해주자.

 

 

 

 

 

 

 

 

반응형