LOOP AT lt_rows into ls_rows.
DELETE FROM zfit1410
WHERE cardno EQ it_1410-cardno
AND transdate EQ it_1410-transdate
AND appramt EQ it_1410-appramt
AND vat EQ it_1410-vat
AND merchbizno EQ it_1410-merchbizno
AND merchno EQ it_1410-merchno
AND merchname EQ it_1410-merchname.
READ TABLE it_1410 INDEX ls_rows-index.
MOVE-CORRESPONDING it_1410 TO lt_tab.
append lt_tab.
MODIFY zfit1410 FROM lt_tab.
CLEAR : ls_rows-index.
ENDLOOP.
코드는 다음과 같구요
분명히 delete 따로, Read Table 밑에부터 코딩 따로해서 각각 시험해봤을때는 매우 잘되거든요?
근데 한 loop안에 같이 쓰면 여러줄 선택했을때 한줄은 지워지기만 하고 modify가 안된다던지 어떤거는 안지워지고 modify만 된다던지 이런 문제가 생겨요 ㅠㅠㅠㅠㅠㅠ
어제부터 계속 이거하나만 잡고 있는데도 못찾겠네요 ㅠㅠ 도와주세요 아밥님들 ㅠ
댓글 4
-
MadMax
2010.11.04 19:22
-
기쁨
2010.11.04 19:31
LOOP AT lt_rows INTO ls_rows.
READ TABLE it_1410 INDEX ls_rows-index.
IF sy-subrc = 0.
DELETE FROM zfit1410
WHERE cardno EQ it_1410-cardno
AND transdate EQ it_1410-transdate
AND appramt EQ it_1410-appramt
AND vat EQ it_1410-vat
AND merchbizno EQ it_1410-merchbizno
AND merchno EQ it_1410-merchno
AND merchname EQ it_1410-merchname.
MOVE-CORRESPONDING it_1410 TO lt_tab.
APPEND lt_tab.
ENDIF.
CLEAR : ls_rows-index.
ENDLOOP.
MODIFY zfit1410 FROM lt_tab. -
정호아빠
2010.11.04 20:36
기쁨님 소스 중에 ERR가...
MODIFY zfit1410 FROM lt_tab. = > MODIFY zfit1410 FROM TABLE lt_tab.
-
오렌지겅주님
2010.11.04 20:45
오오 님들말대로 Read table 을 먼저 해주니깐 두개 다 되네요 ~!!!
고맙슴당 ~
모두 좋은하루 되세요 ^^
문구가 틀렸습니다. ㅠㅠ; 처음 delete 는 it_1410 header line 에 존재하는 자료로 삭제가 됩니다. 이후 삭제는 아래 modify 전 read 된 정보로 삭제가 됩니다.
여기서 중요한 것은 어떤 자료를 삭제 하는 것인가 하는 것인데.. 요컨데 기존의 자료를 삭제 하고 신규 자료로 table insert 하려몀
1. read table it_1410 index ls_rows-index
2. delete zfit1410
3. modify zfi1410 순으로 하시면 될것 같습니다. 참고하세요.