*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
save_ok_code = ok_code.
clear ok_code.
* leave screen 200
if save_ok_code = fcode_entr or
save_ok_code = fcode_esc.
set screen 0. leave screen.
endif.
CASE SAVE_OK_code.
WHEN 'DELE'.
PERFORM delete_data.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*& Form DELETE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DELETE_DATA .
DELETE FROM ZOUTPUT WHERE docdate = zoutput-docdate.
grid->refresh_table_display( ).
set screen 0. leave screen.
ENDFORM. " DELETE_DATA
소스가 이렇게 두개인데요
창은 닫히는데 refresh 기능이 실행이 안되네요
새로고침이 안되요 어떻게 해야할까요?
댓글 3
-
MadMax
2010.10.07 02:02
-
유정a
2010.10.07 02:38
refresh 되는 화면은100번입니다 처음 화면요
-
천재미남
2010.10.12 19:34
팝업된 스크린 200을 종료하면 원래의 스크린 100의 ALV를 리프레쉬해야할때
맨 마지막에
CALL METHOD grid->refresh_table_display. 를 추가합니다.
(여기서 grid는 alv 선언한 객체. )
이리하여 ALV를 리프레쉬 해주시면 바껴 보일듯 합니다.
ALV가 아닐경우
CALL METHOD CL_GUI_CFW=>SET_NEW_OK_CODE
EXPORTING
NEW_CODE = 'DUMMY'.
메소드를 쓰면 PAI를 강제 호출하여 스크린이 리프레쉬 됩니다.
<질문>
1.refresh 되는 화면은 200 인가요 아니면 100 인가요.
2.DB Table Data 가 삭제시 화면용 Data 를 삭제 하는 부분은 어딩에 있나요?
(예상)
삭제된 Data 가 보이는 화면이 100 인경우 DB Table 에서 해당 Data 삭제후 화면 조회용 internal Table 내 해당 Data 를 삭제하면 될것 같음.
100 화면은 보통 PBO 에서 refresh 하는 경우가 많음으로(해당 프로그램은 어떻게 되어 있는지 모르겠지만) Data 삭제후 refresh 할 필요가 없다 생각됨.