강의/SAP ERP
[2주차 과제] ALV 출력(1)
덩이
2025. 7. 30. 14:30
목표: 특정 출력 필드를 포함한 ALV 출력

- 출력 필드:
- CARRID: 항공사 코드
- CONNID: 항공편 연결번호
- FLTIME: 비행시간
- DEFTIME: 출발시간
- ARRTIME: 도착시간
- DISTANCE: 거리
- DISTID: 거리 단위
- 주요 문제점 및 내가 사용한 해결 방안
| 문제점 | 원인 | 해결방법 | 코드(필드 카탈로그) |
| CONNID 앞자리 0이 사라짐 | CONNID는 NUMC 타입 | datatype = 'C' 로 설정해 문자로 출력 |
fieldcatalog-fieldname = 'CONNID'. fieldcatalog-datatype = 'C'. |
| FLTIME 숫자로 나오지 않고 문자로 보임 | FLTIME 기본 문자 타입 | datatype = 'I' 로 숫자형으로 변환해 정렬 및 출력 | fieldcatalog-fieldname = 'FLTIME'. fieldcatalog-datatype = 'I'. |
| DISTANCE 소수점 4자리까지만 보임 | QUAN 타입으로 소수점 4자리 기본 출력 |
decimals_out = 0 으로 소수점 없이 정수만 표시 |
fieldcatalog-fieldname = 'DISTANCE'. fieldcatalog-decimals_out = 0. |
- 코드 일부 (필드 카탈로그 영역)
fieldcatalog-fieldname = 'MANDT'.
fieldcatalog-seltext_m = 'Client'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'CARRID'.
fieldcatalog-seltext_m = 'Airline Code'.
fieldcatalog-col_pos = 1.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'CONNID'.
fieldcatalog-seltext_m = 'Flight Connection Number'.
fieldcatalog-col_pos = 2.
fieldcatalog-datatype = 'C'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'FLTIME'.
fieldcatalog-seltext_m = 'Flight time'.
fieldcatalog-col_pos = 3.
fieldcatalog-datatype = 'I'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'DEPTIME'.
fieldcatalog-seltext_m = 'Departure time'.
fieldcatalog-col_pos = 4.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'ARRTIME'.
fieldcatalog-seltext_m = 'Arrival time'.
fieldcatalog-col_pos = 5.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'DISTANCE'.
fieldcatalog-seltext_m = 'Distance'.
fieldcatalog-col_pos = 6.
fieldcatalog-decimals_out = 0.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'DISTID'.
fieldcatalog-seltext_m = 'Mass unit of distance (kms, miles)'.
fieldcatalog-col_pos = 7.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

과제 문제 풀이
| 문제점 | 원인 | 해결방안 | 코드 (필드 카탈로그) |
| CONNID 앞자리 0 사라짐 | CONNID는 NUMC 타입 | lzero 옵션 사용 'X' : 숫자 앞의 0 표기 공백 또는 설정 없음: 숫자 앞의 0 제거 (default) |
fieldcatalog-lzero = ‘X’. |
| FLTIME 전체가 나오지 않음 | FLTIME INT4 타입 | edit_mask 옵션 사용 출력 필드 고정 시킴 |
fieldcatalog-edit_mask = ‘__________’. |
| DISTANCE 소수점 4자리까지만 보임 | QUAN 타입으로 소수점 4자리 기본 출력 | decimals_out = 0 으로 소수점 없이 정수만 표시 | fieldcatalog-fieldname = 'DISTANCE'. fieldcatalog-decimals_out = 0. |
FLTIME 필드 출력 조건을 잘못 판단함...
fieldcatalog-fieldname = 'CONNID'.
fieldcatalog-seltext_m = 'Flight Connection Number'.
fieldcatalog-col_pos = 2.
fieldcatalog-lzero = ‘X’.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
...
fieldcatalog-fieldname = 'FLTIME'.
fieldcatalog-seltext_m = 'Flight time'.
fieldcatalog-col_pos = 3.
fieldcatalog-edit_mask = ‘__________’.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
...
fieldcatalog-fieldname = 'DISTANCE'.
fieldcatalog-seltext_m = 'Distance'.
fieldcatalog-col_pos = 6.
fieldcatalog-decimals_out = 0.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.