입력 화면 즉 1000에서 입력을 하고 실행을 하다가
안에 에러 데이터가 있어서
다시 입력하면으로 돌아가고 싶은데
leavE TO LIST-PROCESSING.
* set screen 1000.
* call screen.
* leave screen.
이것 저것 쓰고 있는데 다 안되는것 같은데요.
어떤것을 써야 처음 입력 화면으로 돌아가죠?
참고로 로직은 입력을 받아서 실행을 하면 START-OF-SELECTION.으로 들어가서
데이터를 리드를 하는데 다음 화면이 출력된 상태는 아니고요.
데이터를 읽다가 이상한 데이터가 잇으면 다시 입력화면으로 돌아갈려고 합니다.
고수님들 도와주세요
댓글 11
-
엉큼고냥이
2009.07.21 00:53
-
아밥돌이
2009.07.21 01:02
데이터 프로세싱의 시간이 너무 많이 걸려서 그전에 끊을려고 합니다.
위의 방법도 좋은 방법인것 같이지만.
start of selection.
perform read_data. <- 에러 데이터 확인하여 입력화면으로 돌아가려함
perform processing_data. <- 여기서 시간이 많이 듬
end of selection.
perform write_alv.
이런식의 구조입니다.
-
정군
2009.07.21 01:36
STOP.
안되던가요?
-
정군
2009.07.21 01:44
잘못 봤네요...
end of selectioon을 쓰시네요.
STOP하면 start-of-selection은 빠져 나가도 end-of-selection으로 갈겁니다.
RETURN.
해보세요.
기억에는 되었던 듯..
-
아밥돌이
2009.07.21 02:12
stop은 안되고요
return은 버전이 낮아서 그런지 문법이 없다고 하네요.
-
mm_dsshin
2009.07.21 02:39
자주 쓰는 조건 값이 있으면
AT SELECTION-SCREEN 을 사용하여 엉큼고양이 님이 말씀하신 메세지를 뿌리면서 처음화면으로 돌아와도 되고 READ_DATA 부분에서 도 사용 해도 될 듯한데요... -
정군
2009.07.21 03:04
end-of-selection에 있는 것을 start-of-selection으로 보내고
end-of-selection event는 지우시고
STOP 해보세요
-
해보자
2009.07.21 05:43
start of selection.
perform read_data. <- 에러 데이터 확인하여 입력화면으로 돌아가려함
위에서 에러발생시 에러 플래그 셋팅(l_error = 'X'.)
check l_error is initial.
perform processing_data. <- 여기서 시간이 많이 듬
end of selection.
check l_error is initial.
perform write_alv.
이런식으로 체크만 해도 될것 같은데요..
-
JG
2009.08.14 04:33
check 를 사용해 에러가 있으면 돌려보내시면 될거 같은데요..
-
rune
2009.08.18 07:33
입력한 데이타가 오류라 다시 입력을 받고싶으신 것이면 오류첵크한 부분에서 STOP. 을 시켜서 다시 입력을 받는게 보기 편합니다. 만약 다른 스크린에서 실행하다 오류가 난다면 leave screen 시켜야 겠지요...... -
mm_dsshin
2009.10.08 09:45
stop을 하면 end-of-selection 을 타서 처음 화면으로 어떻게 돌아 갈까 많은 고민을 했는데 여기서 한번에 해결 되었네요. RETURN 구문이 적용되네요 ^^ 감사합니다.
end-of-selection 이나 alv출력전에 이렇게 하심 될듯한데요^^
if i_tab is initial.
message i001 with 'Data error'.
exit.
endif.