六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 25|回复: 0

DYNP_VALUES_UPDATE 實時更新 Selection Screen

[复制链接]

升级  94%

51

主题

51

主题

51

主题

秀才

Rank: 2

积分
191
 楼主| 发表于 2013-1-26 13:56:36 | 显示全部楼层 |阅读模式
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_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 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 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/
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表