아래의 두개의 문장을 중첩if문과 case문을 이용해서 하나의 문장으로 깔끔하게 작성하고 싶은데
자꾸 오류가 뭐가 문제인지 알 수가 없네요.
수고롭지만 잠깐 시간내서 아래문장을 중첩if문과 case문으로 작성부탁합니다.
제가 작성한 것과 비교해서 무엇이 잘못인지 알고 싶어서 그럽니다.
그리고 아래보면 EXIT를 주석처리를 했는데 사용할 때와 사용할 때의 차이점이 어떻게 되는지 알려주세요.
아래 내용은 EXIT를 사용하지 않아야 정확한 결과가 나오더군요.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = 'G1'.
IF carrid EQ 'X'.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
* EXIT.
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
IF screen-group1 = 'G2'.
IF carrname EQ 'X'.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
* EXIT.
ENDIF.
ENDLOOP.
댓글 2
-
띵호아빠
2009.01.07 18:07
-
로미오
2009.01.08 06:04
두번째 내용은 되네요. 첫번째는 안되고
그 바탕으로 아래처럼 하니 되네요. 답변 감사합니다.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = 'G1'.
IF carrid EQ 'X'.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'G2'.
IF carrname EQ 'X'.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
복사하여 긁어 넣고 테스트 해 보세요..
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'G1'.
IF carrid EQ 'X'.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
WHEN 'G2'.
IF carrname EQ 'X'.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
WHEN OTHERS.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.