일반 리포트 프로그램을 생성하는대 코딩시 문제점이 있어 질문드립니다.
Selection-screen begin of block b.
parameter p_matnr(20).
selection-screen end of block b.
Start-of-selection.
select single * from mara where matnr = p_matnr.
if sy-subrc ne 0.
STOP.
endif.
End-of-selection
데이타가 없다면 STOP 대서 초기 SELECTION-SCREEN으로 넘어가야되는대 빈화면이 나오고 뒤로가기 를 한번 더
눌러야 초기조회화면으로 넘어가던군요...;;
이게 왜그런지 알려주시면 감사하겠습니다..
댓글 6
-
shark
2009.06.06 02:53
-
im 해성
2009.06.06 15:43
STOP를 쓰면 Start-of-selection에서 나와서 END-OF-SELECTION 으로 가게 됩니다.
shark님이 제시한 방법처럼 하시면 빈화면 대신 메세지가 뜨게 되지요.
초기조회화면으로 가고싶다면 EXIT 사용해보세요.
if sy-subrc ne 0.
** STOP.
EXIT.
endif.
**End-of-selection
-
activeman
2009.06.06 23:26
report 프로그램에서 "stop"은 end-of-selection 으로 가게 됩니다.(모듈풀하고는 다릅니다.)
즐밥하세요....
-
사탕수수
2009.06.08 17:58
원인 찾았습니다...
Selection-screen begin of block b.
parameter p_matnr(20).
skip 1. <----- 제가 실수로 입력한 이부분을 제외하니 빈화면 대신 바로 초기 검색화면으로 넘어가더군여...
selection-screen end of block b.
왜그런지 원인은 모르겠습니다.. 알아봐야겠군요..
-
정군
2009.06.08 23:37
윗분들의 의견이 맞을 듯 한데, 원인은 다른데 있네요.
skip은 그냥 한 줄 띄워주는 것 아니었던가요?
-
방청객
2009.08.01 00:18
사탕 수수님이 제외한 부분은 문의하신 문제하고는 상관이 없습니다.
문의 하신 내용은 위에서 말씀하신분들 말씀이 옳씁니다.
skip 1. 은 단지 줄바꿈 이라서 화면에서 사용하면 에러 발생할텐데요?
입력창에서는
SELECTION-SCREEN SKIP 1. 이렇게 써야 합니다.
skip 1. 이것은 top-of-page 도는 write 문이 있는 출력 루틴에서 할줄 띄우는 명령입니다.
답변이 돼었는지 모르겠네요 .. ^^
*& END-OF-SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION.
IF G_TOTAL_CNT EQ 0.
MESSAGE S900 WITH '조회할 자료가 없습니다.'.
ENDIF.
CHECK G_TOTAL_CNT NE 0.