**screen****
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
MODULE READ_DATA_INITIAL.
LOOP AT IT_DISP WITH CONTROL TC_100 CURSOR TC_100-CURRENT_LINE.
* MODULE MODIFY_SCREEN_100.
MODULE SET_SCREEN.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE EXIT AT EXIT-COMMAND.
LOOP AT IT_DISP.
FIELD IT_DIST-MARK MODULE MARK_CHECK ON REQUEST.
MODULE MODIFY_SCREEN.
ENDLOOP.
MODULE USER_COMMAND_0100.
****MARK_CHECK*****
MODULE MARK_CHECK INPUT.
MODIFY IT_DISP INDEX TC_100-CURRENT_LINE.
ENDMODULE. " MARK_CHECK INPUT
****USER_COMMAND_0100 INPUT******
MODULE USER_COMMAND_0100 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'CHANG'.
READ TABLE IT_DISP WITH KEY MARK = 'X'.
IF SY-SUBRC = '0'.
SET PARAMETER ID 'ANR' FIELD IT_DISP-AUFNR.
CALL TRANSACTION 'CO02' AND SKIP FIRST SCREEN.
ELSE.
MESSAGE E000 WITH '선택된 오더가 없습니다.'.
ENDIF.
위의 소스같이 코딩을 하였습니다.
table control에 데이터가 뿌려져있는 상태에서 'chang' 버튼을 클픽시
it_disp-mark에 'X' 값 이 들어오면서 bdc를 타야하거든요..
근데 it_disp-mark 에 값이 않들어 값니다.
잘 되던게 않되네요.. 왜 그런지 조언부탁트립니다.
댓글 6
-
수욕정이풍부지
2007.07.27 18:05
-
하늘만
2007.07.27 18:19
mark를 선택하고 chang 버튼을 클릭했습니다.. 그러나... 'x' 값이 않들어오니 ..ㅜㅜ
-
수욕정이풍부지
2007.07.27 18:47
이해가 안되네요. 그게 안될리가 없을텐데..
MODIFY IT_DISP INDEX TC_100-CURRENT_LINE. -> 여기에 디버깅 걸구
마우스로 MARK를 클릭했을 때 정상적으로 'X'값이 들어와서 MODIFY 되는지 확인해 보세요.
값이 안 들어온다면 스크린페인터에서 테이블 컨트롤의 w/SelColumn 이 IT_DISP-MARK로 정상적으로
입력이 되어 있는지 확인해 보시구
정상적으로 값이 들어온다면 이후 LOGIC에서 MARK값이 지워진다고 밖에 볼 수 없는데요.
-
수욕정이풍부지
2007.07.27 18:51
어라 방금 본 건데
LOOP AT IT_DISP.
FIELD IT_DIST-MARK MODULE MARK_CHECK ON REQUEST.
MODULE MODIFY_SCREEN.
ENDLOOP.
부분에서 IT_DIST는 오타인가요?? 허걱 --;
-
하늘만
2007.07.27 23:15
헉!!!!!!
이런 바보같은일이....
감사합니다. 오타가 있었네요..제가 아직 꼼꼼하지 못해서 찾지 못했나봅니다.
수욕정이풍부지님 감사합니다.. 이것땜시 계속 밀려 있었습니다..
무한 감사 드립니다.
-
김종요
2007.07.31 02:36
오타까지 멋지게 잡아주셨네요.. ^^
mark 값을 선택하신 후 chang 버튼을 누르신 게 맞나요?
chang 버튼을 클릭한다고 해서 자동으로 mark에 'X'값이 들어갈 리는 없을 텐데요.
module mark_check 부분에서 mark부분을 마우스로 클릭하거나 해제했을 경우에 해당 'X'값을 modify 하게 되어 있으므로
정상적으로 mark를 선택한 후 chang 버튼을 클릭하셨다면 특별히 문제는 없어보입니다.