체크 여러개 지정시
belnr이 하나라도 값이 있으면 '전표가 이미생성되었다라는 메세지를 뿌려주고 싶습니다
현재는 하나씩 체크해서 넣었을때는 잘 되거든요
count방법을 써야 하는건가요?
저에게 방법을 알려주세요
LOOP AT it_01 WHERE check = 'X'.
IF it_01-check = 'X' AND it_01-belnr IS INITIAL.
UPDATE zstfitcard SET status = 'X'
WHERE cardnum = it_01-cardnum
AND apvno = it_01-apvno
AND trdat = it_01-trdat
AND trstat = it_01-trstat
AND datacls IN ('C', 'S', 'N').
MESSAGE s000 WITH '처리제외 되었습니다.'.
ELSE.
MESSAGE s000 WITH '전표가 이미 생성 되었습니다.'.
ENDIF.
ENDLOOP.
댓글 4
-
無念군
2010.03.27 02:17
-
아밥콩`
2010.03.27 02:42
IF it_01-check = 'X' 이거는 나중에 잘 안되서 한번더 해본건데요 ^^;;
it_01-belnr IS INITIAL.
update *********
----- 정상 작업
else.
----- 작업불가
endif.
이렇게 했을떄도 안되었었는데 순서에도 이유가 있나요? 제가 착각한걸까요? ㅠ제가 잘 몰라서요 ㅠㅠ
지금은 알려주신 대로 했더니 잘되네요...정말 감사합니다.
-
요요
2010.03.29 23:21
?? if의 구문을 loop 의 where 로 넣으시면 될 것 같은데요...?? -
無念군
2010.03.30 17:48
디버깅 해보셔요.. belnr 값에 아무것도 없는 NULL 값이 맞는지요..
디폴트로 '0000000' 이 setting 된건 아닌지.. 어떤지요..
해당 loop 구문은 where check = 'X'.
값을 기준으로 looping 작업이 진행 되므로 ..
내부 if 문에 check = 'X'는 존재 하지 않아도 무방할듯 하며 ..
if it_01-belnr is NOT initial ..
----- 작업불가
else.
update *********
----- 정상 작업
endif.
로 처리 하시면 될듯 합니다 .