do g_cnt1 times.
perform check_value using itab-value1 '01'
changing g_subrc.
modify itab index 1. =>1)
~
perform check_value using itab-value2 '05'
changing g_subrc.
modify itab index 5.
itab인터널테이블 g_cnt1의 값이 아래와 같을때
MATNR AUFNR VALUE1 VALUE2 VALUE3 VALUE4 VALUE5
C11192 1004798 -5 -5 -500 -500 500
C11192 1004823 -7 -7 -550 -550 500
:
itab의 각 row별 aufnr별 value1 ~ value5까지의 각 값을 check_value를 타게해서
값을 얻은뒤 itab의 value1, value2, value3, value4, value5까지
1건씩 modify하려고 합니다.
1)과 같이 modify itab index 1.~ 5로 주면 바로 나오지 않는데요..
modify i_spec index itab-current_line.으로도 되지 않구요.
고수님들의 의견을 듣고 싶습니다.
댓글 4
-
피크민
2008.04.14 20:30
-
풍뎅이
2008.04.15 02:23
MODIFY itab TRANSPORTING value1. 부분에서
TABLE_ILLEGAL_STATEMENT의 덤프에러가 생기는데요..
modify형식이 잘못되었나요..
-
쭌수야~!
2008.04.15 19:40
음... 질문이 정확히 이해가 되지 않아 동문서답일지도... ^^;;
위 로직을 보면 do g_cnt1 times. 이렇게 DO 문을 사용하게끔 되어있습니다.
itab value1 ~ value5 필드의 값을 체크하려면 itab의 헤더에 값이 들어와야하는데
위 로직에서는 read table itab 등의 로직이 보이지 않네요...
loop at itab. 으로 수정하거나, read table itab 로직을 추가해서 해보심이...
-
풍뎅이
2008.04.16 22:42
답변주신분들께 감사드립니다.
컬럼당 하나씩 modify하는거 말씀하시는건가요?
MODIFY itab TRANSPORTING value1. 이렇게 해보세요..
그럼 value1하나만 modify될거에요.. value1~value5바꿔가면서 하면 컬럼마다 modify가능합니다.