DYNP_VALUES_UPDATE 實時更新 Selection Screen
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 dynamicallyREPORT ztest.TYPE-POOLS: slis.*----------------------------------------------------------------------** T A B L E S*----------------------------------------------------------------------**----------------------------------------------------------------------** T Y P E S*----------------------------------------------------------------------** Main internal table for processTYPES: 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_bwartOCCURS 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 StockSELECTION-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 DisplayCLEAR 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/
页:
[1]