zoukankan      html  css  js  c++  java
  • REUSE_ALV_POPUP_TO_SELECT使用技巧


    可以实现弹出一个对话框,提供选择数据的功能……

    栗子1:

    CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

      TYPE-POOLS slis.
      DATA: selec  TYPE slis_selfield,
            l_exit TYPE c.
      DATA: lv_repid TYPE sy-repid.
    
    
      lv_repid = sy-repid.
      CONCATENATE sy-title '檢查異動類型+異動指示碼+特殊庫存是否與ZCO011相同' INTO gv_title.
    
      REFRESH gt_msg.
      CLEAR:  gs_msg,gt_msg.
      SELECT *
        INTO TABLE @gt_matdoc
        FROM matdoc
       WHERE budat BETWEEN @gv_start_date AND @gv_end_date
         AND bukrs EQ @p_bukrs
         AND mjahr = @gv_start_date+0(4)
         AND werks IN @s_werks
         AND matnr IN @s_matnr
         AND lgort IN @s_lgort.
    
      SELECT * FROM zco011 INTO TABLE gt_zco011.
      SORT gt_zco011 BY kokrs bwart kzbew sobkz.
      LOOP AT gt_matdoc.
        READ TABLE gt_zco011 INTO DATA(ls_zco011) WITH KEY bwart = gt_matdoc-bwart
                                                           kzbew = gt_matdoc-kzbew
                                                           sobkz = gt_matdoc-sobkz
                                                           BINARY SEARCH.
        IF sy-subrc <> 0.
          IF gt_matdoc-bwart = '561' OR gt_matdoc-bwart = '562'. "開帳MVT不納入
          ELSE.
            CONCATENATE '異動類型:' gt_matdoc-bwart
                        ',異動指示碼:' gt_matdoc-kzbew
                        ',特殊庫存指示碼:' gt_matdoc-sobkz
                        ',不存在設定檔中' INTO gs_msg-msg.
            COLLECT gs_msg INTO gt_msg.
            CLEAR gs_msg.
          ENDIF.
        ENDIF.
      ENDLOOP.
    
      LOOP AT gt_msg ASSIGNING FIELD-SYMBOL(<lf_msg>).
        <lf_msg>-num = sy-tabix.
      ENDLOOP.
    
    
      IF gt_msg[] IS NOT INITIAL.
        CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
          EXPORTING
            i_title            = gv_title "'SELECT MATERIAL'
            i_tabname          = 'GT_MSG'
            i_structure_name   = 'SLS_MSGS'
            i_callback_program = lv_repid
    **i_callback_user_command = 'USER_COMMAND'
          IMPORTING
            es_selfield        = selec
            e_exit             = l_exit
          TABLES
            t_outtab           = gt_msg.
    *    CALL FUNCTION 'SLS_MISC_SHOW_MESSAGE_TAB'
    *      TABLES
    *        p_messages           = gt_msg[]
    *      EXCEPTIONS
    *        no_messages_provided = 1
    *        OTHERS               = 2.
      ELSE.
        MESSAGE i001(00) WITH '本期:異動類型+異動指示碼+特殊庫存與ZCO011設定一致.'.
        LEAVE LIST-PROCESSING.
      ENDIF.
    View Code

    展示效果:

    可以实现

    栗子2:

    CALL FUNCTION 'SLS_MISC_SHOW_MESSAGE_TAB'

  • 相关阅读:
    MySQL通过RPM安装
    HDU4279(2012年天津网络赛---数论分析题)
    Redis实战
    顺序环形队列的各种基本运算
    cocos2d_随手篇1_关于ccTouchBegan的调用
    URAL 1019
    Redis实战之Redis + Jedis
    dataGridView控件--未将对象引用设置添加到对象的实例
    创建 router 连通 subnet- 每天5分钟玩转 OpenStack(100)
    配置 L3 agent
  • 原文地址:https://www.cnblogs.com/rainysblog/p/11714641.html
Copyright © 2011-2022 走看看