Ex> C 문법
for ( i = 0 ; i < 10 ; i ++){
array1[i].var1 = array2[i].var2.
}
위와 같이 하나의 for문안에 2개의 배열을 사용하듯이
LOOP AT itab1.
itab1-var1 = itab2-var2.
* itab1-var1 = itab2[sy-tabix]-var2 . <- 이건 안됨
ENDLOOP.
이의 itab1과 itab2의 행 수는 같습니다. 한번에 2개의 itab을 돌릴수 없을까요?
고수님들 도와주세요.
댓글 8
-
은우야
2009.03.09 18:16
-
아밥돌이
2009.03.09 18:21
은우야님 감사합니다. 하지만 저건 이중 loop문이자나요..
한 루프안에서 같은 deep를 원하는것입니다.
-
SAYA
2009.03.09 18:38
인터널 테이블의 내용을 처리하기 위해서는 LOOP 문 또는 READ 문을 사용해서
일단 BODY 의 내용을 헤더라인 또는 WORK AREA 에 가져와서 처리를 하기때문에...
BODY 의 내용에 다른 랭귀지 처럼 배열 구문으로 직접 접근은 안됩니다.
은우야 님의 의견대로 이중 LOOP을 돌려야 합니다.
-
불꽃남자
2009.03.09 19:24
행수가 같다면 한 테이블을 LOOP로 돌리고
나머지 테이블은 Read table ....into... index sy-tabix.
구문을 사용하면 되겠네요.
-
Hyui
2009.03.09 19:26
불꽃남자님 답변에 한표. 이중루프를 돌리게 되면 시간상 소요가 많이 되므로 READ 쓰는게 효율적이라 봅니다.
-
은우야
2009.03.09 19:42
LOOP AT itab1.
l_index = sy-index.
itab1-var1 = itab2-var2.
* itab1-var1 = itab2[sy-tabix]-var2 . <- 이건 안됨
ENDLOOP.
* itab1-var1 = itab2[sy-tabix]-var2 . <- 이건 안됨
이 부분에서 read table itab2 index l_index.
itab1-var1 = itab2-va1.
이렇게 하시면 동일한 deep를 얻을 수 있을거같은데요
질문의 내용을 잘 파악 못했습니다 ^^;;
-
용사마
2009.03.09 20:09
질문하신게 맞느지 모르겠습니다.
loop at itab1.
CLEAR: L_CNT.
do 12 times.
L_CNT = L_CNT + 1.
concanate 'ITAB2-COL' L_CNT INTO L_NAME.
enddo.
endlooop.
이런식으로 테이블 1이 한바꾸 돌때.. ITAB2가 들고온 컬럼을 제어하실려고 하는것인지요 ?
아님 위에 님처럼 READ 하셔도 무방할듯 합니다...
-
無念군
2009.03.09 22:30
두개의 루프를 통해서 어떤 작업을 요하시는지에 따라서..
READ를 쓰시거나 .. Do~ 구문을 적용하시거나.. 아니면 이중 loop 구문을 적용하시거나..
하시면 될듯 합니다 .. 정확히 어떤 작업을 필요 하시느냐에 따라서 .. 작업방법을 선택 하심이..
막연히 한번 루프에서 2개를 테이블을 돌릴수 없냐 하셔서..
답변을 다시는 분들이 -_-;; 어려움을 격으시는듯 합니다 ㅠㅠ
행 수는 상관없습니다..
loop itab1.
loop itab2
endloop itab2
endloop itab1...
이런 구조는 가능합니다..
원하시는 결과가 정확히 뭔지 모르겠군요...
다만 가능할거같습니다..^^