REPORT zc215_test.
DATA : gt_itab TYPE TABLE OF sflight,
gs_wa TYPE sflight.
SELECT carrid connid
FROM spfli
INTO CORRESPONDING FIELDS OF TABLE gt_itab
PACKAGE SIZE 5.
LOOP AT gt_itab INTO gs_wa.
WRITE : / gs_wa-carrid, gs_wa-connid.
ENDLOOP.
ULINE 1.
ENDSELECT.
PACKAGE SIZE 5에 따라,
출력이 5개씩 되어야하는데,
ULINE 1을 하면 4개씩만 출력이 되었다.
이게 원래 기존 26행짜리고,
ULINE 1이 들어가면
이런식으로 총 20행만 나온다.
나머지 6행은 어디로 간걸까.....?
PACKAGE SIZE는 데이터 베이스에서 한 번에 가져오는 레코드 수를 지정하는데, ABAP은 화면에 표시할 수 있는 라인 수을 고려한다.
ULINE은 화면에 한 줄을 차지하는데, 이 줄도 ABAP시스템이 출력할 때 하나의 행으로 계산한다.
- PACKAGE SIZE 5로 설정했을 때
- 시스템은 5개의 행을 출력해야 한다고 계산하지만
- 이 중 1개의 행은 ULINE에 의해 소비됨
- 남은 4개의 행만 실제 데이터로 출력됨
즉, ABAP은 일종의 '출력 버퍼' 개념으로 작동하여 PACKAGE SIZE에 지정된 숫자만큼의 라인(데이터 라인 + 형식 라인)을 출력하려고 시도한다. ULINE이 이 중 하나의 라인을 차지하기 때문에 실제 데이터는 하나 적게 표시되는 것이다.
그러면 어떻게 해결해야할까?
나는 이걸 한 줄씩 보고싶은데 말이다!
1. 문자열대입하기
LOOP AT gt_itab INTO gs_wa.
WRITE : / gs_wa-carrid, gs_wa-connid.
ENDLOOP.
WRITE : / '---------------------'. " 단순 문자열 선
ENDSELECT.
2. SKIP사용하기
LOOP AT gt_itab INTO gs_wa.
WRITE : / gs_wa-carrid, gs_wa-connid.
ENDLOOP.
SKIP. " 한 줄 건너뛰기
ENDSELECT.
skip하면 26줄 다 잘 나온다!
'SAP' 카테고리의 다른 글
SAP ABAP Programming for Beginners - 71 Describe & Insert & modify로 변경이 안되는 점 확인하기 (0) | 2025.04.24 |
---|---|
SAP ABAP INTERNAL TABLE에서 MODIFY쓰기 (0) | 2025.04.24 |
SAP ABAP Programming for Beginners 70 TYPE, LIKE 차이 (0) | 2025.04.24 |
SAP ABAP Programming for Beginners - 69 Internal Table 동작방식 (0) | 2025.04.24 |
SAP ABAP 코드 정리하기 - 구조체 정의, Internal Table (0) | 2025.04.24 |