728x90
# LOOP AT [ 인터널 테이블 ] FROM [ 시작 인덱스 ] TO [ 끝 인덱스 ]... 이란?
# 인터널 테이블에서 일부 범위만 루프 돌릴 때 쓰는 방법이다.
# 또한, 몇 건 반복을 정해서 돌릴 수도 있다.
- 예를 들어), 25건을 기준으로 잡는다면, [ FROM .. TO ... ]을 통해 25건을 돌린 뒤? 다음 26건부터 돌릴 수 있게 설정할 수 있다.
여기서 정리할 것은, 반복 기준을 잡아서 25건씩 돌리는 방법을 알아보자.
# 우선 반복을 쓰기 위해서는 WHILE문을 사용해야 한다.
# 시작하기 전
# 우리는 25라인마다 반복해서 1부터 25까지 SUM 한 값을 저장하는 로직을 짜야한다.
# 다음 인터널 테이블이 있다고 가정해 보자. ( 01 ~ 100 )

DATA: BEGIN OF GS_LIST,
ID TYPE I,
SUM TYPE I,
END OF GS_LIST.
DATA:
GT_LIST LIKE TABLE OF GS_LIST.
DO 100 TIMES.
GS_LIST-ID = SY-INDEX.
GS_LIST-SUM = GS_LIST-SUM + 2.
APPEND GS_LIST TO GT_LIST.
ENDDO.
# SUM 한 값을 저장하는 인터널 테이블
DATA: BEGIN OF GS_SUM,
ID TYPE I,
RESULT TYPE I,
END OF GS_SUM,
GT_SUM LIKE TABLE OF GS_SUM.
# WHILE문을 통해서 반복 기준을 잡아보자.
# 01. 우선 다음과 같이 기초 틀을 잡아보자.

# 02. 이제 다음 로직을 넣어서 [ 반복 기준 ]을 잡아보자.
# 여기서는 [ 반복 기준 = 25 ] 잡았기 때문에 [ -1 ] 해줘야 한다.

DATA:
LV_LINES TYPE I,
LV_FROM TYPE I VALUE 1,
LV_TO TYPE I.
DESCRIBE TABLE GT_LIST LINES LV_LINES.
WHILE LV_FROM <= LV_LINES.
LV_TO = LV_FROM + 24. " [반복 기준] "
IF LV_TO > LV_LINES.
LV_TO = LV_LINES.
ENDIF.
LV_FROM = LV_TO + 1.
ENDWHILE.
# [ LOOP AT ... FROM ... TO ... ]을 통해서 값을 가져와보자.
# 01. 다음과 같이 LOOP AT 옵션에 있는 [ FROM ... TO .. ]을 이용해서 25건씩 데이터를 가져올 수가 있다.

# 02. 다음과 같이 [ 반복하면서 할 로직 설정 ] or [ 반복이 끝나면 진행할 로직 설정 ]으로 나뉘게 된다.
# 그렇기 때문에 해당 로직에 따라서 설정하면 된다.

DATA:
LV_LINES TYPE I,
LV_FROM TYPE I VALUE 1,
LV_TO TYPE I,
LV_SUM TYPE i.
DESCRIBE TABLE GT_LIST LINES LV_LINES.
WHILE LV_FROM <= LV_LINES.
LV_TO = LV_FROM + 24. " [반복 기준] "
IF LV_TO > LV_LINES.
LV_TO = LV_LINES.
ENDIF.
LOOP AT GT_LIST FROM lv_from TO lv_to
INTO GS_LIST.
" 반복하면서 첨가할 로직 설정 "
LV_SUM = LV_SUM + GS_LIST-SUM.
GS_SUM-RESULT = LV_SUM.
ENDLOOP.
" 25 반복이 끝나는 로직 설정 "
GS_SUM-ID = lv_to.
APPEND GS_SUM TO GT_SUM.
CLEAR:
LV_SUM.
LV_FROM = LV_TO + 1.
ENDWHILE.
# 여기서는 간단하게 했지만, 이런 식으로 기준을 잡아서 로직을 응용하면 될 것 같다.
# 결과 값


끝..!
# 이런 식으로 두 개의 로직을 나눠서 원하는 값을 가져오게 할 수 있게 된다.
실제로 전표를 쳤을 때 아이템 개수가 너무 많아서 해당 로직으로 해결했던 경험이 있다.
728x90
'.ABAP > ..모든 것' 카테고리의 다른 글
| SAP Maintenance View 필드 속성 변경( 체크박스 ) (0) | 2025.12.16 |
|---|---|
| SAP SELECT-OPTIONS To Parameter 설정 ( Modify Screen ) (3) | 2025.12.12 |
| SAP Range Table 정리 (0) | 2025.05.16 |
| SAP Package 정리 (0) | 2025.05.02 |
| SAP Number Range NR 상태 확인 (0) | 2025.04.24 |