안녕하세요,
어제 집에 와서 다시 과제를 시작했는데 처음부터 잘 해결되지 않아 문의드립니다.
현재 생성되어 있는 사원테이블(zsawon_info) 인데요. utilitis-table content 를 이용해서 10개의 data를 입력했습니다.
이제 테이블을 출력을 해야하는데 먼저 입력값을 받는 화면을 띄워야 하잖아요.
그리하여 input 값 받는 화면을 다음과 같이 만들었구요.
이제 범위를 적거나 혹은 위의 버튼을 누르면 data를 출력해야 하잖아요.
일단 table에 있는 내용을 internal table에 입력을 해서 출력이 되어야 하는것으로 알고 있는데요.
그래서 internal table을 생성하는데 따로 필드를 추가할 것이 없기에
data: $ztemp2 like ztemp2 occurs 0 with header line. // 방법1
와 같이 선언하였습니다. e-campus에서 수강시 따로 추가할 필드가 없으면 위와 같이 선언하고 추가로 덧붙힐 필드가 있으면
DATA: BEGIN OF itab OCCURS 0,
check,
key1(3),
include structure ztemp2.
DATA: END OF itab. // 방법2
와 같이 선언하라고 나와서 위의 방법1대로 하였구요.
그런데 이제 실행을 하면
와 같이 에러가 나타납니다....
data 선언부와 start-of-selection 이하 부분을 주석처리하면 input 입력 받는 화면까지 실행은 되는데 지금은 되지 않습니다.
아..정확히 어떤 문제인지...ㅠㅠ
전체 코드를 첨부하겠습니다..
TABLES: ztemp2.
data: $ztemp2 like ztemp2 occurs 0 with header line.
SELECTION-SCREEN BEGIN OF BLOCK TEST01 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS sawon_no FOR ztemp2-sawon_no.
SELECTION-SCREEN END OF BLOCK TEST01.
START-OF-SELECTION.
PERFORM retrieve_data.
form retrieve_data.
SELECT * APPENDING CORRESPONDING FIELDS OF TABLE $ztemp2 FROM ztemp2 WHERE sawon_no.
endform.
열심히 하겠습니다!!
감사합니다....^^;;
댓글 2
-
냐옹냐옹
2010.03.06 08:09
-
미르모
2010.03.09 23:31
WHERE 절이 잘못된듯 ^^
where table의 필드 in 검색변수(sawon_no)
이렇게 되어야 합니다.
1) 만약 sawon_no를 parameter로 선언했다면
where table의 필드 = 검색변수(sawon_no)
2) 님께서 sawon_no변수를 SELECT-OPTIONS 로 선언하셨기때문에
where table의 필드 in 검색변수(sawon_no)
로 하시면 됩니다.
그리고 변수 선언하실때...table의 필드값하고 똑같이 주면 좀 헷갈리실텐데.
수고하세요..
아. $ztemp2 -> 이 부분이 문제였습니다.
제가 책에서 봤을때 저렇게 나왔었는데. 저건 무슨 값을 입력하라는 일종의 표시였다고 하네요.
internal table 이름 생성시에 특수기호는 절대 안된다는거~~ ㅋㅋ