본문 바로가기

Study

Study-6

Field Catalog

필드 카탈로그는 ALV에서 조회되는 칼럼들의 필드 정보를 포함하는 LVC_T_FCAT 타입의 테이블 구조를 가집니다.

ALV는 필드 카탈로그 정보를 저장하는 인터널 테이블을 이용하여 필드 타입을 인식합니다.

 

필드 카탈로그를 활용하기 위해선 SET_TABLE_FOR_FIRST_DISPLAY 메소드의 파라미터 IT_FIELDCATALOG를 이용하여 필드 카탈로그 정보를 ALV에 전송합니다.

 

필드 카탈로그는 3가지 방법으로 정의할 수 있습니다.

1. ABAP Dictionary 오브젝트를 이용

2. 프로그램 내에서 수동(스크립트; 코드 작성)으로 구성

3. 1, 2번 방법 혼합

 

ABAP Dictionary 오브젝트를 이용하는 방법은 SET_TABLE_FOR_FIRST_DISPLAY 메소드의 파라미터 I_STRUCTURE_NAME을 이용합니다.

I_STRUCTURE_NAME 파라미터로 사용할 수 있는 ABAP Dictionary는 다음과 같습니다.

* Transparent Table, Structure, View, Append Structure, Cluster Table, Pooled Table

 

필드 카탈로그를 프로그램 내에서 수동(스크립트; 코드 작성)으로 구성하는 방법은 생성된 인터널 테이블의 컴포넌트, 데이터 타입 등을 전부 수동으로 작성해야 합니다. 해당 방법은 프로그램 유지보수에 많은 시간을 소요해야 합니다.

하지만 필요한 카탈로그만 보여주고 싶을 땐 해당 방법을 사용합니다.

 

코드 예시를 보시면 더 자세히 알 수 있습니다.

LS_FCAT-FIELDNAME = 'CARRID'.
LS_FCAT-COLTEXT = 'Airline'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'CONNID'.
LS_FCAT-COLTEXT = 'Connection No.'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'FLDATE'.
LS_FCAT-COLTEXT = 'Flight Date'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'BOOKID'.
LS_FCAT-COLTEXT = 'Booking No.'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'CUSTOMID'.
LS_FCAT-COLTEXT = 'Customer No.'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'CUSTTYPE'.
LS_FCAT-COLTEXT = 'B/P Type'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'SMOKER'.
LS_FCAT-COLTEXT = 'Smoker'.
*LS_FCAT-CHECKBOX = 'X'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'LUGGWEIGHT'.
LS_FCAT-COLTEXT = 'Lugge Weight'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'WUNIT'.
LS_FCAT-COLTEXT = 'Unit'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'INVOICE'.
LS_FCAT-COLTEXT = 'Invoice'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'CLASS'.
LS_FCAT-COLTEXT = 'Class'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'FORCURAM'.
LS_FCAT-COLTEXT = 'Foreign Currency'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'FORCURKEY'.
LS_FCAT-COLTEXT = 'Currency Key'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'LOCCURAM'.
LS_FCAT-COLTEXT = 'Local Currency'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'LOCCURKEY'.
LS_FCAT-COLTEXT = 'Currency Key'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'ORDER_DATE'.
LS_FCAT-COLTEXT = 'Order Date.'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'COUNTER'.
LS_FCAT-COLTEXT = 'Booking Counter'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'AGENCYNUM'.
LS_FCAT-COLTEXT = 'Agency No.'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'CANCELLED'.
LS_FCAT-COLTEXT = 'Cancelled'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'RESERVED'.
LS_FCAT-COLTEXT = 'Reservation'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'PASSNAME'.
LS_FCAT-COLTEXT = 'Name of the Passenger'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'PASSFORM'.
LS_FCAT-COLTEXT = 'Form of Address'.
APPEND LS_FCAT TO GT_FCAT.

CLEAR: LS_FCAT.
LS_FCAT-FIELDNAME = 'PASSBIRTH'.
LS_FCAT-COLTEXT = 'Date of Birth'.
APPEND LS_FCAT TO GT_FCAT.

 

필드 카탈로그에 해당하는 LVC_S_FCAT의 구조는 100개 정도가 됩니다.

아래 사진은 일부분이지만 참고해주시기 바랍니다.

 

구조체와 필드 카탈로그를 동시에 사용하는 방법은 스트럭처의 필드 외에 사용자가 원하는 필드를 추가로 삽입할 때 사용합니다.


* 오늘은 많이 졸았습니다.... 그러면 안됐지만..... 별 수 있나요... 힘들어 죽겠는데

그래도 최선을 다해 정리했습니다. 다음엔 이러지 않기를......

'Study' 카테고리의 다른 글

Study-8  (0) 2024.02.02
Study-7  (0) 2024.01.31
쉼표  (1) 2024.01.29
Study-4  (0) 2024.01.27
STUDY-3  (0) 2024.01.25