DYNP_VALUES_UPDATE 實時更新 Selection Screen 在 AT SELECTION-SCREEN 事件中更新 PARAMETER 或 SELECT-OPTIONS 的數值時,當前的畫面並不會立即更新,要按 Enter 之後才會顯示最新數值。 以下代碼是用 DYNP_VALUES_UPDATE 實現實時更新。 (1) 觸發 AT SELECTION-SCREEN ON VALUE-REQUEST FOR XXX. (2) REUSE_ALV_POPUP_TO_SELECT 彈出選單,Double Click 以選擇目標。 (3) 立即更新已選的兩個數值。 DYNP_VALUES_UPDATE – Update the Selection Screen dynamically REPORT ztest. TYPE-POOLS: slis. *----------------------------------------------------------------------* * T A B L E S *----------------------------------------------------------------------* *----------------------------------------------------------------------* * T Y P E S *----------------------------------------------------------------------* * Main internal table for process TYPES: BEGIN OF ty_bwart, zeile TYPE mseg-zeile, bwart TYPE mseg-bwart, sobkz TYPE mseg-sobkz, rmtxt TYPE string, END OF ty_bwart. *----------------------------------------------------------------------* * I N T E R N A L T A B L E *----------------------------------------------------------------------* DATA: t_bwart TYPE ty_bwart OCCURS 0 WITH HEADER LINE. *----------------------------------------------------------------------* * W O R K I N G A R E A S * *----------------------------------------------------------------------* DATA: w_bwart TYPE ty_bwart. *----------------------------------------------------------------------* * S E L E C T I O N - S C R E E N *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE c_title. PARAMETER: p_bwart LIKE mseg-bwart OBLIGATORY, "MOV Type p_sobkz LIKE mseg-sobkz. "Special Stock SELECTION-SCREEN SKIP 1. SELECTION-SCREEN END OF BLOCK b1. *----------------------------------------------------------------------* * L O A D - O F - P R O G R A M *----------------------------------------------------------------------* LOAD-OF-PROGRAM. *----------------------------------------------------------------------* * I N I T I A L I Z A T I O N *----------------------------------------------------------------------* INITIALIZATION. c_title = 'DYNP_VALUES_UPDATE Demo'. t_bwart-bwart = '322'. t_bwart-sobkz = ''. t_bwart-rmtxt = 'Unrest. Use > QI (WH stock)'. APPEND t_bwart. t_bwart-bwart = '344'. t_bwart-sobkz = 'K'. t_bwart-rmtxt = 'Unrest. Use > Blocked (Consignment)'. APPEND t_bwart. t_bwart-bwart = '321'. t_bwart-sobkz = ''. t_bwart-rmtxt = 'QI > to Unrest. Use (WH stock)'. APPEND t_bwart. t_bwart-bwart = '350'. t_bwart-sobkz = 'E'. t_bwart-rmtxt = 'QI > Blocked (SO stock)'. APPEND t_bwart. t_bwart-bwart = '350'. t_bwart-sobkz = 'K'. t_bwart-rmtxt = 'QI > Blocked (Consignment)'. APPEND t_bwart. *----------------------------------------------------------------------* * A T S E L E C T I O N - S C R E E N *----------------------------------------------------------------------* AT SELECTION-SCREEN. "ON VALUE-REQUEST FOR P_LAYOUT. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bwart. DATA l_selfield TYPE slis_selfield. DATA: wa_fcat TYPE slis_fieldcat_alv, fcat TYPE slis_t_fieldcat_alv. "Field Cat. for Error Message Display CLEAR wa_fcat. wa_fcat-row_pos = '1'. wa_fcat-col_pos = '1'. wa_fcat-fieldname = 'BWART'. wa_fcat-tabname = 'T_BWART'. wa_fcat-seltext_m = 'Movement'. wa_fcat-outputlen = 5. APPEND wa_fcat TO fcat. CLEAR wa_fcat. wa_fcat-row_pos = '1'. wa_fcat-col_pos = '2'. wa_fcat-fieldname = 'SOBKZ'. wa_fcat-tabname = 'T_BWART'. wa_fcat-seltext_m = 'Spec.Stk.'. wa_fcat-outputlen = 5. APPEND wa_fcat TO fcat. CLEAR wa_fcat. wa_fcat-row_pos = '1'. wa_fcat-col_pos = '3'. wa_fcat-fieldname = 'RMTXT'. wa_fcat-tabname = 'T_BWART'. wa_fcat-seltext_m = 'Description'. wa_fcat-outputlen = 50. APPEND wa_fcat TO fcat. CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT' EXPORTING i_selection = 'X' i_zebra = 'X' it_fieldcat = fcat i_tabname = 'T_BWART' * I_CHECKBOX_FIELDNAME = 'CHECKBOX' IMPORTING es_selfield = l_selfield TABLES t_outtab = t_bwart. IF l_selfield-tabindex GT 0. CLEAR w_bwart. READ TABLE t_bwart INDEX l_selfield-tabindex INTO w_bwart. IF w_bwart-bwart IS NOT INITIAL. DATA: ltab_fields LIKE dynpread OCCURS 0 WITH HEADER LINE. DATA: lc_dyname LIKE sy-repid. DATA: lc_dynumb LIKE sy-dynnr. lc_dyname = sy-repid. lc_dynumb = sy-dynnr. ltab_fields-fieldname = 'P_BWART'. ltab_fields-fieldvalue = w_bwart-bwart. APPEND ltab_fields. ltab_fields-fieldname = 'P_SOBKZ'. ltab_fields-fieldvalue = w_bwart-sobkz. APPEND ltab_fields. CALL FUNCTION 'DYNP_VALUES_UPDATE' EXPORTING dyname = lc_dyname dynumb = lc_dynumb TABLES dynpfields = ltab_fields EXCEPTIONS OTHERS = 8. ENDIF. ENDIF. http://w1ng.hk/dynp_values_update-update-selection/
DYNP_VALUES_UPDATE 實時更新 Selection Screen
最新推荐文章于 2024-08-26 15:45:56 发布