200번 화면이 팝업으로 뜨면
기본값으로 그림과 같이 나오게 되어 있어요.
그중 세금코드 기본값 J0을 쓰고 있는데...이걸
possible entries 클릭해서 다른걸로 바꿨후 엔터를 치면
도로 J0으로 돌아갑니다.
다른 필드들도 같은 현상입니다. ㅠㅠ
예를 들어
J0 =>J1로 바꾼 후 엔터 => J0으로 돌아갑니다.
변경후 엔터 눌러도 변경된걸 유지하는 방법은?
============================================================
소스는
PROCESS BEFORE OUTPUT.
MODULE status_0200.
PROCESS AFTER INPUT.
MODULE EXIT_0200 AT EXIT-COMMAND.
FIELD GS_VALUE-LIFNR MODULE set_lifnr_value on REQUEST.
FIELD GS_VALUE-ZTERM MODULE set_ZTERM_value on REQUEST.
FIELD GS_VALUE-ZLSCH MODULE set_zlsch_value on REQUEST.
FIELD GS_VALUE-MWSKZ MODULE set_MWSKZ_value on REQUEST.
MODULE user_command_0100.
PROCESS ON VALUE-REQUEST.
FIELD GS_VALUE-LIFNR MODULE f4_popup_lifnr_value.
FIELD GS_VALUE-ZTERM MODULE f4_popup_ZTERM_value.
FIELD GS_VALUE-ZLSCH MODULE f4_popup_zlsch_value.
FIELD GS_VALUE-MWSKZ MODULE f4_popup_MWSKZ_value.
*&---------------------------------------------------------------------*
*& Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0200 OUTPUT.
SET PF-STATUS 'PF0200'.
SET TITLEBAR 'TIT0200'.
gs_value-waers = g_waers.
GS_VALUE-LIFNR = '8500000'.
GS_VALUE-ZTERM = 'CN00'.
GS_VALUE-ZLSCH = 'E'.
GS_VALUE-MWSKZ = 'J0'.
ENDMODULE. " STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
*& Module SET_MWSKZ_VALUE INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE SET_MWSKZ_VALUE INPUT.
ENDMODULE. " SET_MWSKZ_VALUE INPUT
*&---------------------------------------------------------------------*
*& Module F4_POPUP_MWSKZ_VALUE INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE F4_POPUP_MWSKZ_VALUE INPUT.
CLEAR : gt_tax, gt_tax[].
SELECT MWSKZ TEXT1
INTO CORRESPONDING FIELDS OF TABLE gt_tax
FROM T007S
WHERE SPRAS = 'E'
AND KALSM = 'TAXCN'.
SORT gt_tax BY MWSKZ.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'MWSKZ'
value_org = 'S'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'GS_VALUE-MWSKZ'
TABLES
value_tab = gt_tax
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDMODULE. " F4_POPUP_MWSKZ_VALUE INPUT
PBO부분에 하드코딩 되어 있는 부분 때문에 데이터가 변경되지 않는 것 같은데
IF GS_VALUE-MWSKZ IS INITIAL OR GS_VALUE-MWSKZ = 'J0'.
GS_VALUE-MWSKZ = 'J0'.
ELSEIF GS_VALUE-MWSKZ NE'J0'.
GS_VALUE-MWSKZ = LV_MWSKZ(입력한 데이터 값).
ENDIF.
요렇게 해주면 될 것 같은데요. 다른 필드도 마찬가지고요.
PBO와 PAI개념을 조금 보시면 지금 현상에 대해 금방 파악하실 수 있을 것 같습니다.