克米亚sap论坛,中国最好的sap论坛,sap系统,sap培训,kemiya,克米亚,sap账号,sap ides,sap mm,sap hana,sap fico,sap pp

 找回密码
 注册
查看: 50|回复: 0

实例:ABAP Tree Control 使用与ALV Grid对象关联

[复制链接]
kmy 发表于 2019-1-7 09:34:16 | 显示全部楼层 |阅读模式
Tree Control 是最常用的Windows控件之一,在其他语言中成为"Tree View"等,ABAP的 Tree Contiol 能实现类似的功能。
本文主要介绍一下内容:
1. 实例一个简单的 Tree Control,双击取得节点的Key 和 TEXT
2. 建立有数据表接口的Tree Control 对象
3. 通过右键菜单实现 Tree Control节点的 增 删 改 功能
4. Tree Control对象与ALV Grid对象关联
××××××××××××××××××××华丽的分割线×××××××××××××××××××××××
BEGIN
(一)实例一个简单的 Tree Control,双击取得节点的Key 和 TEXT.

1. 创建一个ABAP程序
2. 在程序中添加一个屏幕100,使用屏幕制作器,建立Screen,添加屏幕对象
    创建好的屏幕和对象界面如图:
   
    屏幕元素清单
   
 逻辑流程序

PROCESS BEFORE OUTPUT. MODULE STATUS_0100.*PROCESS AFTER INPUT. MODULE USER_COMMAND_0100.
  主程序
  1 *&---------------------------------------------------------------------*  2 *& Report  ZHAIM_TREE_CONTROL  3 *&  4 *&---------------------------------------------------------------------*  5 *&  6 *&  7 *&---------------------------------------------------------------------*  8   9 REPORT  ZHAIM_TREE_CONTROL. 10 * 功能码 11 DATA: OK_CODE TYPE SY-UCOMM, 12       SAVE_OK TYPE SY-UCOMM. 13 * key text 14 DATA: NODEKEY(20) TYPE C, 15       NODETXT(20) TYPE C. 16  17 * 定制控制对象 18 DATA: WA_CONTAINER TYPE SCRFNAME VALUE 'TREE', 19 * 客户对象 20       WA_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER, 21 * 实例化对象 22       WA_TREE TYPE REF TO CL_GUI_SIMPLE_TREE. 23 * 节点信息表 24 DATA: IT_NODETABLE LIKE TABLE OF MTREESNODE, 25       IW_NODETABLE TYPE MTREESNODE. 26  27 DATA  WA_SPFLI TYPE TABLE OF SPFLI. 28  29 *创建一个类,实现一个双击方法 30 CLASS LCL_APPLICATION DEFINITION DEFERRED. 31  32 *&---------------------------------------------------------------------* 33 *&       Class (DEFINITION)  LCL_APPLICATION 34 *&---------------------------------------------------------------------* 35 *        Text 36 *----------------------------------------------------------------------* 37 CLASS LCL_APPLICATION DEFINITION. 38   PUBLIC SECTION. 39     METHODS HANDLE_NODE_DOUBLE_CLICK 40         FOR EVENT NODE_DOUBLE_CLICK 41         OF CL_GUI_SIMPLE_TREE 42         IMPORTING NODE_KEY. 43 ENDCLASS.               "LCL_APPLICATION 44 *&---------------------------------------------------------------------* 45 *&       Class (Implementation)  LCL_APPLICATION 46 *&---------------------------------------------------------------------* 47 *        Text 48 *----------------------------------------------------------------------* 49 CLASS LCL_APPLICATION IMPLEMENTATION. 50  51   METHOD HANDLE_NODE_DOUBLE_CLICK. 52  53     NODEKEY = NODE_KEY. 54  55     READ TABLE IT_NODETABLE WITH KEY NODE_KEY = NODE_KEY INTO IW_NODETABLE. 56  57     NODETXT = IW_NODETABLE-TEXT. 58   ENDMETHOD. 59  60 ENDCLASS.               "LCL_APPLICATION 61  62 * 双击方法的类的实例化对象 准备在PBO中分配给TREE对象 63 DATA: G_APPLICATION TYPE REF TO LCL_APPLICATION. 64  65  66 START-OF-SELECTION. 67  68   CREATE OBJECT G_APPLICATION. 69  70   CALL SCREEN 100. 71  72  73 *&---------------------------------------------------------------------* 74 *&      Module  USER_COMMAND_0100  INPUT 75 *&---------------------------------------------------------------------* 76 *       text 77 *----------------------------------------------------------------------* 78 MODULE USER_COMMAND_0100 INPUT. 79  80   SAVE_OK = OK_CODE. 81  82   CLEAR OK_CODE. 83  84   CASE SAVE_OK. 85     WHEN 'BACK'. 86       LEAVE PROGRAM. 87     WHEN OTHERS. 88   ENDCASE. 89  90 ENDMODULE.                 " USER_COMMAND_0100  INPUT 91 *&---------------------------------------------------------------------* 92 *&      Module  STATUS_0100  OUTPUT 93 *&---------------------------------------------------------------------* 94 *       text 95 *----------------------------------------------------------------------* 96 MODULE STATUS_0100 OUTPUT. 97   SET PF-STATUS 'TREECTRL_GUIS'. 98   SET TITLEBAR 'TREE CONTROL'. 99 IF WA_CUSTOM_CONTAINER IS INITIAL.100   PERFORM FRM_CREATE_TREE.101 ENDIF.102 ENDMODULE.                 " STATUS_0100  OUTPUT103 104 *&---------------------------------------------------------------------*105 *&      Form  FRM_CREATE_TREE106 *&---------------------------------------------------------------------*107 *       text108 *----------------------------------------------------------------------*109 *  -->  p1        text110 *  <--  p2        text111 *----------------------------------------------------------------------*112 FORM FRM_CREATE_TREE .113   DATA: EVENTS TYPE CNTL_SIMPLE_EVENTS,114         EVENT1 TYPE CNTL_SIMPLE_EVENT.115 * 定制控制对象,指定tree control的容器116   CREATE OBJECT WA_CUSTOM_CONTAINER117    EXPORTING118 *    PARENT                      =119     CONTAINER_NAME              = WA_CONTAINER " 定制对象名:TREE120 *    STYLE                       =121 *    LIFETIME                    = lifetime_default122 *    REPID                       =123 *    DYNNR                       =124 *    NO_AUTODEF_PROGID_DYNNR     =125   EXCEPTIONS126     CNTL_ERROR                  = 1127     CNTL_SYSTEM_ERROR           = 2128     CREATE_ERROR                = 3129     LIFETIME_ERROR              = 4130     LIFETIME_DYNPRO_DYNPRO_LINK = 5131     others                      = 6132     .133 134 IF SY-SUBRC <> 0.135 * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO136 *            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.137 ENDIF.138 139 * 定义树对象140   CREATE OBJECT WA_TREE141     EXPORTING142 *      LIFETIME                    =143       PARENT                      = WA_CUSTOM_CONTAINER144 *      SHELLSTYLE                  =145       NODE_SELECTION_MODE         = CL_GUI_SIMPLE_TREE=>NODE_SEL_MODE_SINGLE146 *      HIDE_SELECTION              =147 *      NAME                        =148     EXCEPTIONS149       LIFETIME_ERROR              = 1150       CNTL_SYSTEM_ERROR           = 2151       CREATE_ERROR                = 3152       FAILED                      = 4153       ILLEGAL_NODE_SELECTION_MODE = 5154       others                      = 6155       .156   IF SY-SUBRC <> 0.157 *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO158 *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.159   ENDIF.160 161 * 通过宏定义树 节点162 DEFINE  CREATE_TREE.163 164   CLEAR IW_NODETABLE.165 166   IW_NODETABLE-NODE_KEY = &1.         "节点KEY值167   IW_NODETABLE-RELATKEY = &2.         "相关联的节点KEY值168   IW_NODETABLE-RELATSHIP = &3.        "关联关系169   IW_NODETABLE-HIDDEN = &4.170   IW_NODETABLE-DISABLED = &5.171   IW_NODETABLE-ISFOLDER = &6.         "文件夹形式172 *  图标,可以运行程序 SHOWICON 查阅173   IW_NODETABLE-N_IMAGE = &7.          "图标174   IW_NODETABLE-EXP_IMAGE = &7.        "图标175 *  IW_NODETABLE-EXPANDER.176   IW_NODETABLE-TEXT = &8.             "节点文本177 178   APPEND IW_NODETABLE TO IT_NODETABLE.179 180 END-OF-DEFINITION.181 182 CREATE_TREE 'CN'   ''       ''183                                 '' '' 'X' '' '中国'.184 CREATE_TREE 'BEIJING' 'CN' CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD '' '' 'X' '' '北京'.185 CREATE_TREE 'FENGTAI' 'BEIJING' CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD '' '' '' '@6G@' '丰台区'.186 CREATE_TREE 'HAIDIAN' 'BEIJING' CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD '' '' '' '@6G@' '海淀区'.187 CREATE_TREE 'CHAOYANG' 'BEIJING' CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD '' '' '' '@6G@' '朝阳区'.188 CREATE_TREE 'DONGCHENG' 'BEIJING' CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD '' '' '' '@6G@' '东城区'.189 190 CREATE_TREE 'SHENGHAI' 'CN' CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD '' '' 'X' '' '上海'.191 CREATE_TREE 'QINGPU' 'SHENGHAI' CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD '' '' '' '@6F@' '青浦区'.192 CREATE_TREE 'HONGKOU' 'SHENGHAI' CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD '' '' '' '@6F@' '虹口区'.193 CREATE_TREE 'HUANGPU' 'SHENGHAI' CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD '' '' '' '@6F@' '黄浦区'.194 195 * 为TREE对象添加节点196   CALL METHOD WA_TREE->ADD_NODES197     EXPORTING198       TABLE_STRUCTURE_NAME           = 'MTREESNODE'199       NODE_TABLE                     =  IT_NODETABLE200 *    EXCEPTIONS201 *      ERROR_IN_IT_NODETABLE          = 1202 *      FAILED                         = 2203 *      DP_ERROR                       = 3204 *      TABLE_STRUCTURE_NAME_NOT_FOUND = 4205 *      others                         = 5206           .207   IF SY-SUBRC <> 0.208 *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO209 *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.210   ENDIF.211 212 *定义双击事件213   EVENT1-EVENTID = CL_GUI_SIMPLE_TREE=>EVENTID_NODE_DOUBLE_CLICK.214   EVENT1-APPL_EVENT = 'X'.215   APPEND EVENT1 TO EVENTS.216 217 * 添加事件内表218   CALL METHOD WA_TREE->SET_REGISTERED_EVENTS219     EXPORTING220       EVENTS                    = EVENTS221     EXCEPTIONS222       CNTL_ERROR                = 1223       CNTL_SYSTEM_ERROR         = 2224       ILLEGAL_EVENT_COMBINATION = 3225       others                    = 4226           .227   IF SY-SUBRC <> 0.228 *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO229 *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.230   ENDIF.231 *  将已定义的双击事件分配到树对象232   SET HANDLER G_APPLICATION->HANDLE_NODE_DOUBLE_CLICK FOR WA_TREE.233 ENDFORM.                    " FRM_CREATE_TREE

(二) 建立有数据接口的Tree Control 对象
从数据表中读取结构,并按照数据关系建立Tree Control,
提一下思路,不做具体事例。。。
将需要的表结构存储到内表中,然后LOOP这张内表,循环调用宏来填充节点内表:例如
DEFINE  CREATE_TREE.  CLEAR IW_NODETABLE.  IW_NODETABLE-NODE_KEY = &1.         "节点KEY值  IW_NODETABLE-RELATKEY = &2.         "相关联的节点KEY值  IW_NODETABLE-RELATSHIP = &3.        "关联关系  IW_NODETABLE-HIDDEN = &4.  IW_NODETABLE-DISABLED = &5.  IW_NODETABLE-ISFOLDER = &6.         "文件夹形式*  图标,可以运行程序 SHOWICON 查阅  IW_NODETABLE-N_IMAGE = &7.          "图标  IW_NODETABLE-EXP_IMAGE = &7.        "图标*  IW_NODETABLE-EXPANDER.  IW_NODETABLE-TEXT = &8.             "节点文本  APPEND IW_NODETABLE TO IT_NODETABLE.END-OF-DEFINITION.LOOP AT  INTO .   "循环调用宏    CREATE_TREE ' '  ' '  ' '  ' '  ' '  .     ...ENDLOOP.
这样节点情况,也会根据数据情况来动态变化。
(三)通过右键菜单实现 Tree Control节点的 增 删 改 功能
在OO的类中,添加两个方法
*&---------------------------------------------------------------------**&       Class (DEFINITION)  LCL_APPLICATION*&---------------------------------------------------------------------**        Text*----------------------------------------------------------------------*CLASS LCL_APPLICATION DEFINITION.  PUBLIC SECTION.    METHODS:     HANDLE_NODE_DOUBLE_CLICK        FOR EVENT NODE_DOUBLE_CLICK         OF CL_GUI_SIMPLE_TREE         IMPORTING NODE_KEY,*    构成右键菜单的方法           HANDLE_NODE_CONTEXT_MENU_REQ        FOR EVENT NODE_CONTEXT_MENU_REQUEST         OF CL_GUI_SIMPLE_TREE         IMPORTING NODE_KEY MENU,*    响应右键菜单的方法     HANDLE_NODE_CONTEXT_MENU_SEL        FOR EVENT NODE_CONTEXT_MENU_SELECT         OF CL_GUI_SIMPLE_TREE         IMPORTING NODE_KEY FCODE.ENDCLASS.               "LCL_APPLICATION
方法的实现
*&---------------------------------------------------------------------**&       Class (Implementation)  LCL_APPLICATION*&---------------------------------------------------------------------**        Text*----------------------------------------------------------------------*CLASS LCL_APPLICATION IMPLEMENTATION.  METHOD HANDLE_NODE_DOUBLE_CLICK.    READ TABLE IT_NODETABLE WITH KEY NODE_KEY = NODE_KEY INTO IW_NODETABLE.    L_KUNNRK = IW_NODETABLE-NODE_KEY.    L_VTWEGK  = IW_NODETABLE-RELATKEY.    CLEAR IW_NODETABLE.    READ TABLE IT_NODETABLE WITH KEY NODE_KEY = L_VTWEGK INTO IW_NODETABLE.    L_VKORGK = IW_NODETABLE-RELATKEY.    CLEAR IW_NODETABLE.    PERFORM FRM_GET_DATA USING L_KUNNRK L_VTWEGK L_VKORGK.     CALL METHOD WA_ALVG->REFRESH_TABLE_DISPLAY*      EXPORTING*        IS_STABLE      =*        I_SOFT_REFRESH =*      EXCEPTIONS*        FINISHED       = 1*        others         = 2            .    IF SY-SUBRC <> 0.*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.    ENDIF.  ENDMETHOD.  METHOD HANDLE_NODE_CONTEXT_MENU_REQ.    CALL METHOD MENU->ADD_FUNCTION      EXPORTING        TEXT  = '增加本级节点'        FCODE = 'CODE1'.    CALL METHOD MENU->ADD_FUNCTION      EXPORTING        TEXT  = '增加子节点'        FCODE = 'CODE2'.    CALL METHOD MENU->ADD_FUNCTION      EXPORTING        TEXT  = '修改当前节点'        FCODE = 'CODE3'.    CALL METHOD MENU->ADD_FUNCTION      EXPORTING        TEXT  = '删除当前节点'        FCODE = 'CODE4'.  ENDMETHOD.  METHOD HANDLE_NODE_CONTEXT_MENU_SEL.    DATA STR1 TYPE TV_NODEKEY.    CALL METHOD WA_TREE->GET_SELECTED_NODE      IMPORTING        NODE_KEY                   = STR1.    IF SY-SUBRC = 0.       READ TABLE IT_NODETABLE WITH KEY NODE_KEY = STR1 INTO IW_NODETABLE.       IF FCODE = 'CODE4'.          CALL METHOD WA_TREE->DELETE_NODE            EXPORTING              NODE_KEY          = IW_NODETABLE-NODE_KEY              .          DELETE IT_NODETABLE WHERE NODE_KEY = IW_NODETABLE-NODE_KEY.       ENDIF.    ENDIF.  ENDMETHOD.ENDCLASS.               "LCL_APPLICATION
(四) Tree Control对象与ALV Grid对象关联

附,源代码:
  1 *&---------------------------------------------------------------------*  2 *& Report  ZHAIM_TREE_CONTROL  3 *&  4 *&---------------------------------------------------------------------*  5 *&  6 *&  7 *&---------------------------------------------------------------------*  8   9 REPORT  ZHAIM_TREE_CONTROL. 10 * 功能码 11 DATA: OK_CODE TYPE SY-UCOMM, 12       SAVE_OK TYPE SY-UCOMM. 13 14 15 * 定制控制对象 16 DATA: WA_CONTAINER  TYPE SCRFNAME VALUE 'TREE', 17       WA_CONTAINERA TYPE SCRFNAME VALUE 'ALVG', 18 * 客户对象 19       WA_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER, 20       WA_CUSTOM_CNTNRALVG TYPE REF TO CL_GUI_CUSTOM_CONTAINER, 21 * 实例化对象 22       WA_TREE TYPE REF TO CL_GUI_SIMPLE_TREE, 23       WA_ALVG TYPE REF TO CL_GUI_ALV_GRID. 24 * 节点信息表 25 DATA: IT_NODETABLE TYPE STANDARD TABLE OF MTREESNODE, 26       IW_NODETABLE TYPE MTREESNODE. 27 28 DATA: IS_LAYOUT   TYPE LVC_S_LAYO, 29       IT_FIELDCAT TYPE STANDARD TABLE OF LVC_S_FCAT, 30       IW_FIELDCAT LIKE LINE OF IT_FIELDCAT . 31 32 TYPES:BEGIN OF TY_VBAK , 33         VKORG  TYPE VBAK-VKORG , 34         VTWEG  TYPE VBAK-VTWEG , 35         KUNNR  TYPE VBAK-KUNNR , 36         VBELN  TYPE VBAK-VBELN , 37         VKORGT TYPE TVKOT-VTEXT, 38         VTWEGT TYPE TVTWT-VTEXT, 39       END OF TY_VBAK . 40 41 DATA: IT_VBAK TYPE STANDARD TABLE OF TY_VBAK, 42       IW_VBAK TYPE TY_VBAK. 43 44 TYPES: BEGIN OF TY_VBAP , 45           VBELN TYPE VBAP-VBELN , 46           POSNR TYPE VBAP-POSNR , 47           MATNR TYPE VBAP-MATNR , 48           NETWR TYPE VBAP-NETWR , 49           WERKS TYPE VBAP-WERKS , 50           LSMENG TYPE VBAP-LSMENG , 51        END OF TY_VBAP . 52 53 DATA: IT_VBAP TYPE STANDARD TABLE OF TY_VBAP, 54       IW_VBAP TYPE TY_VBAP. 55 56 DATA GS_LAYOUT   TYPE LVC_S_LAYO. 57 DATA GT_FIELDCAT TYPE STANDARD TABLE OF LVC_S_FCAT . 58 DATA GW_FIELDCAT LIKE LINE OF GT_FIELDCAT . 59 * 通过宏定义树 节点 60 DEFINE  CREATE_TREE. 61 62   CLEAR IW_NODETABLE. 63 64   IW_NODETABLE-NODE_KEY = &1.         "节点KEY值 65   IW_NODETABLE-RELATKEY = &2.         "相关联的节点KEY值 66   IW_NODETABLE-RELATSHIP = &3.        "关联关系 67   IW_NODETABLE-HIDDEN = &4. 68   IW_NODETABLE-DISABLED = &5. 69   IW_NODETABLE-ISFOLDER = &6.         "文件夹形式 70 *  图标,可以运行程序 SHOWICON 查阅 71   IW_NODETABLE-N_IMAGE = &7.          "图标 72   IW_NODETABLE-EXP_IMAGE = &7.        "图标 73   IW_NODETABLE-TEXT = &8.             "节点文本 74 75   CLEAR IW_NODETABLE-EXPANDER. 76 77   APPEND IW_NODETABLE TO IT_NODETABLE. 78 79 END-OF-DEFINITION. 80 *创建一个类,实现一个双击方法 81 CLASS LCL_APPLICATION DEFINITION  DEFERRED. 82 83 *&---------------------------------------------------------------------* 84 *&       Class (DEFINITION)  LCL_APPLICATION 85 *&---------------------------------------------------------------------* 86 *        Text 87 *----------------------------------------------------------------------* 88 CLASS LCL_APPLICATION DEFINITION . 89   PUBLIC SECTION. 90 91     DATA: L_KUNNRK  TYPE VBAK-KUNNR, 92           L_VTWEGK  TYPE VBAK-VTWEG, 93           L_VKORGK  TYPE VBAK-VKORG. 94 95     METHODS: 96      "双击方法 97      HANDLE_NODE_DOUBLE_CLICK 98         FOR EVENT NODE_DOUBLE_CLICK OF CL_GUI_SIMPLE_TREE 99          IMPORTING NODE_KEY,100      "ALV toolbar101      HANDLE_TOOLBAR102         FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID103         IMPORTING E_OBJECT E_INTERACTIVE,104      "响应 toolbar功能的方法105      HANDLE_USER_COMMAND106         FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID107         IMPORTING E_UCOMM,108      "响应热键109      HANDLE_HOTSPOT_CLICK110         FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID111         IMPORTING E_ROW_ID,112      "构成右键菜单113      HANDLE_NODE_CONTEXT_MENU_REQ114         FOR EVENT NODE_CONTEXT_MENU_REQUEST OF CL_GUI_SIMPLE_TREE115          IMPORTING NODE_KEY MENU,116      "获取右键所选择的节点node_key117      HANDLE_NODE_CONTEXT_MENU_SEL118         FOR EVENT NODE_CONTEXT_MENU_SELECT OF CL_GUI_SIMPLE_TREE119          IMPORTING NODE_KEY FCODE,120 121      HANDLE_DOUBLE_CLICK122        FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID123      IMPORTING E_ROW.124 125 ENDCLASS.               "LCL_APPLICATION126 *&---------------------------------------------------------------------*127 *&       Class (Implementation)  LCL_APPLICATION128 *&---------------------------------------------------------------------*129 *        Text130 *----------------------------------------------------------------------*131 CLASS LCL_APPLICATION IMPLEMENTATION.132 133   METHOD HANDLE_NODE_DOUBLE_CLICK.134     READ TABLE IT_NODETABLE WITH KEY NODE_KEY = NODE_KEY INTO IW_NODETABLE.135     L_KUNNRK = IW_NODETABLE-NODE_KEY.136     L_VTWEGK  = IW_NODETABLE-RELATKEY.137     CLEAR IW_NODETABLE.138 139     READ TABLE IT_NODETABLE WITH KEY NODE_KEY = L_VTWEGK INTO IW_NODETABLE.140     L_VKORGK = IW_NODETABLE-RELATKEY.141     CLEAR IW_NODETABLE.142 143     PERFORM FRM_GET_DATA USING L_KUNNRK L_VTWEGK L_VKORGK.144 145     CALL METHOD WA_ALVG->REFRESH_TABLE_DISPLAY .146 147     IF SY-SUBRC <> 0.148 *     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO149 *                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.150     ENDIF.151   ENDMETHOD.152 153   METHOD HANDLE_TOOLBAR.154     DATA: LS_TOOLBAR TYPE STB_BUTTON.155     CLEAR LS_TOOLBAR-BUTN_TYPE.156     APPEND LS_TOOLBAR TO E_OBJECT->MT_TOOLBAR.157     CLEAR LS_TOOLBAR.158 159     CLEAR LS_TOOLBAR.160     LS_TOOLBAR-FUNCTION = 'SHOW_DATA'.161     LS_TOOLBAR-ICON = ICON_PPE_VNODE.162     LS_TOOLBAR-QUICKINFO = '明细信息'.163     LS_TOOLBAR-TEXT = '明细信息'.164     IF IT_VBAP IS INITIAL.165       LS_TOOLBAR-DISABLED = 'X'.166     ENDIF.167 168      APPEND LS_TOOLBAR TO E_OBJECT->MT_TOOLBAR.169 170     CLEAR LS_TOOLBAR.171     LS_TOOLBAR-FUNCTION = 'INFO'.172     LS_TOOLBAR-ICON = ICON_PPE_VNODE.173     LS_TOOLBAR-QUICKINFO = '信息'.174     LS_TOOLBAR-TEXT = '信息'.175     LS_TOOLBAR-DISABLED = 'X'.176      APPEND LS_TOOLBAR TO E_OBJECT->MT_TOOLBAR.177   ENDMETHOD.178 179   METHOD HANDLE_USER_COMMAND.180     DATA: LT_ROWS TYPE LVC_T_ROW.181     CASE E_UCOMM.182       WHEN 'SHOW_DATA'.183         CALL METHOD WA_ALVG->GET_SELECTED_ROWS184           IMPORTING185             ET_INDEX_ROWS = LT_ROWS186 *            ET_ROW_NO     =187             .188         CALL METHOD CL_GUI_CFW=>FLUSH189 *          EXCEPTIONS190 *            CNTL_SYSTEM_ERROR = 1191 *            CNTL_ERROR        = 2192 *            others            = 3193                 .194         IF LT_ROWS IS INITIAL.195           MESSAGE S001(00) WITH '请选择行'.196         ELSE.197           PERFORM FRM_DETAILS TABLES LT_ROWS.198         ENDIF.199 200     ENDCASE.201   ENDMETHOD.202 203   METHOD HANDLE_HOTSPOT_CLICK.204 205           PERFORM FRM_HOTSPOT USING E_ROW_ID.206 207   ENDMETHOD.208   METHOD HANDLE_NODE_CONTEXT_MENU_REQ.209     CALL METHOD MENU->ADD_FUNCTION210       EXPORTING211         TEXT  = '增加本级节点'212         FCODE = 'CODE1'.213 214     CALL METHOD MENU->ADD_FUNCTION215       EXPORTING216         TEXT  = '增加子节点'217         FCODE = 'CODE2'.218 219     CALL METHOD MENU->ADD_FUNCTION220       EXPORTING221         TEXT  = '修改当前节点'222         FCODE = 'CODE3'.223 224     CALL METHOD MENU->ADD_FUNCTION225       EXPORTING226         TEXT  = '删除当前节点'227         FCODE = 'CODE4'.228   ENDMETHOD.229 230   METHOD HANDLE_NODE_CONTEXT_MENU_SEL.231     DATA STR1 TYPE TV_NODEKEY.232     CALL METHOD WA_TREE->GET_SELECTED_NODE233       IMPORTING234         NODE_KEY                   = STR1.235 236     IF SY-SUBRC = 0.237        READ TABLE IT_NODETABLE WITH KEY NODE_KEY = STR1 INTO IW_NODETABLE.238        IF FCODE = 'CODE4'.239           CALL METHOD WA_TREE->DELETE_NODE240             EXPORTING241               NODE_KEY          = IW_NODETABLE-NODE_KEY242                             .243           DELETE IT_NODETABLE WHERE NODE_KEY = IW_NODETABLE-NODE_KEY.244        ENDIF.245     ENDIF.246   ENDMETHOD.247 248   METHOD HANDLE_DOUBLE_CLICK.249     PERFORM FRM_DBLCLICK USING E_ROW.250   ENDMETHOD.251 ENDCLASS.               "LCL_APPLICATION252 253 * 双击方法的类的实例化对象 准备在PBO中分配给TREE对象254 DATA: G_APPLICATION TYPE REF TO LCL_APPLICATION.255 256 257 START-OF-SELECTION.258 259   "创建类对象260   CREATE OBJECT G_APPLICATION.261 262   PERFORM FRM_GET_NODE_DATA.263   CALL SCREEN 100.264 265 266 *&---------------------------------------------------------------------*267 *&      Module  STATUS_0100  OUTPUT268 *&---------------------------------------------------------------------*269 *       text270 *----------------------------------------------------------------------*271 MODULE STATUS_0100 OUTPUT.272   SET PF-STATUS 'TREECTRL_GUIS'.273   SET TITLEBAR 'TREE CONTROL'.274 IF WA_CUSTOM_CONTAINER IS INITIAL.275   PERFORM FRM_CREATE_TREE.276 ENDIF.277 ENDMODULE.                 " STATUS_0100  OUTPUT278 279 *&---------------------------------------------------------------------*280 *&      Module  USER_COMMAND_0100  INPUT281 *&---------------------------------------------------------------------*282 *       text283 *----------------------------------------------------------------------*284 MODULE USER_COMMAND_0100 INPUT.285 286   SAVE_OK = OK_CODE.287 288   CLEAR OK_CODE.289 290   CASE SAVE_OK.291     WHEN 'BACK'.292       LEAVE PROGRAM.293     WHEN OTHERS.294   ENDCASE.295 296 ENDMODULE.                 " USER_COMMAND_0100  INPUT297 298 *&---------------------------------------------------------------------*299 *&      Form  FRM_CREATE_TREE300 *&---------------------------------------------------------------------*301 *       text302 *----------------------------------------------------------------------*303 *  -->  p1        text304 *  <--  p2        text305 *----------------------------------------------------------------------*306 FORM FRM_CREATE_TREE .307   DATA: EVENTS TYPE CNTL_SIMPLE_EVENTS,308         EVENT1 TYPE CNTL_SIMPLE_EVENT.309 310 * 定制控制对象,指定tree control的容器311   CREATE OBJECT WA_CUSTOM_CONTAINER312    EXPORTING313 *    PARENT                      =314     CONTAINER_NAME              = WA_CONTAINER " 定制对象名:TREE315 *    STYLE                       =316 *    LIFETIME                    = lifetime_default317 *    REPID                       =318 *    DYNNR                       =319 *    NO_AUTODEF_PROGID_DYNNR     =320     EXCEPTIONS321       CNTL_ERROR                  = 1322       CNTL_SYSTEM_ERROR           = 2323       CREATE_ERROR                = 3324       LIFETIME_ERROR              = 4325       LIFETIME_DYNPRO_DYNPRO_LINK = 5326       OTHERS                      = 6327       .328 329     IF SY-SUBRC <> 0.330 *     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO331 *                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.332     ENDIF.333 334 * 定制控制对象,指定ALV 的容器335 CREATE OBJECT WA_CUSTOM_CNTNRALVG336   EXPORTING337 *    PARENT                      =338     CONTAINER_NAME              = WA_CONTAINERA339 *    STYLE                       =340 *    LIFETIME                    = lifetime_default341 *    REPID                       =342 *    DYNNR                       =343 *    NO_AUTODEF_PROGID_DYNNR     =344 *  EXCEPTIONS345 *    CNTL_ERROR                  = 1346 *    CNTL_SYSTEM_ERROR           = 2347 *    CREATE_ERROR                = 3348 *    LIFETIME_ERROR              = 4349 *    LIFETIME_DYNPRO_DYNPRO_LINK = 5350 *    others                      = 6351     .352 IF SY-SUBRC <> 0.353 * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO354 *            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.355 ENDIF.356 357 358 359 * 定义树对象360   CREATE OBJECT WA_TREE361     EXPORTING362 *      LIFETIME                    =363       PARENT                      = WA_CUSTOM_CONTAINER364 *      SHELLSTYLE                  =365       NODE_SELECTION_MODE         = CL_GUI_SIMPLE_TREE=>NODE_SEL_MODE_SINGLE366 *      HIDE_SELECTION              =367 *      NAME                        =368     EXCEPTIONS369       LIFETIME_ERROR              = 1370       CNTL_SYSTEM_ERROR           = 2371       CREATE_ERROR                = 3372       FAILED                      = 4373       ILLEGAL_NODE_SELECTION_MODE = 5374       others                      = 6375       .376   IF SY-SUBRC <> 0.377 *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO378 *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.379   ENDIF.380 381 * 定义ALV对象382 383   CREATE OBJECT WA_ALVG384     EXPORTING385 *      I_SHELLSTYLE      = 0386 *      I_LIFETIME        =387       I_PARENT          = WA_CUSTOM_CNTNRALVG388 *      I_APPL_EVENTS     = space389 *      I_PARENTDBG       =390 *      I_APPLOGPARENT    =391 *      I_GRAPHICSPARENT  =392 *      I_NAME            =393 *      I_FCAT_COMPLETE   = SPACE394 *    EXCEPTIONS395 *      ERROR_CNTL_CREATE = 1396 *      ERROR_CNTL_INIT   = 2397 *      ERROR_CNTL_LINK   = 3398 *      ERROR_DP_CREATE   = 4399 *      others            = 5400       .401   IF SY-SUBRC <> 0.402 *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO403 *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.404   ENDIF.405 406 DATA: L_VKORGT TYPE TVKOT-VTEXT,407       L_VTWEGT TYPE TVTWT-VTEXT,408       L_VKORG  TYPE VBAK-VKORG,409       L_VTWEG  TYPE VBAK-VTWEG,410       L_KUNNR  TYPE VBAK-KUNNR.411 412 413 LOOP AT IT_VBAK INTO IW_VBAK.414   L_VKORG = IW_VBAK-VKORG.415   L_VTWEG = IW_VBAK-VTWEG.416   L_KUNNR = IW_VBAK-KUNNR.417   L_VKORGT = IW_VBAK-VKORGT.418   L_VTWEGT = IW_VBAK-VTWEGT.419 420   CREATE_TREE L_VKORG  '' '' '' '' 'X' '' L_VKORGT.421   CREATE_TREE L_VTWEG L_VKORG  6 '' '' 'X' '' L_VTWEGT.422   CREATE_TREE L_KUNNR L_VTWEG  6 '' '' '' '@5B@' IW_VBAK-KUNNR.423 424   CLEAR: L_VKORGT,425          L_VTWEGT,426          L_VKORG,427          L_VTWEG,428          L_KUNNR,429          IW_VBAK.430 ENDLOOP.431 432 * 为TREE对象添加节点433   SORT IT_NODETABLE BY NODE_KEY RELATKEY.434   DELETE ADJACENT DUPLICATES FROM IT_NODETABLE COMPARING NODE_KEY RELATKEY.435 436   SORT IT_NODETABLE BY RELATSHIP ASCENDING ISFOLDER DESCENDING.437   CALL METHOD WA_TREE->ADD_NODES438     EXPORTING439       TABLE_STRUCTURE_NAME           = 'MTREESNODE'440       NODE_TABLE                     =  IT_NODETABLE441 *    EXCEPTIONS442 *      ERROR_IN_IT_NODETABLE          = 1443 *      FAILED                         = 2444 *      DP_ERROR                       = 3445 *      TABLE_STRUCTURE_NAME_NOT_FOUND = 4446 *      others                         = 5447           .448   IF SY-SUBRC <> 0.449 *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO450 *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.451   ENDIF.452 453    PERFORM FRM_SET_ALVTB .454 455 *定义双击事件456   EVENT1-EVENTID = CL_GUI_SIMPLE_TREE=>EVENTID_NODE_DOUBLE_CLICK.457   EVENT1-APPL_EVENT = 'X'.458   APPEND EVENT1 TO EVENTS.459 460   EVENT1-EVENTID = CL_GUI_SIMPLE_TREE=>EVENTID_NODE_CONTEXT_MENU_REQ.461   EVENT1-APPL_EVENT = ''.462   APPEND EVENT1 TO EVENTS.463 464   CALL METHOD WA_TREE->SET_CTX_MENU_SELECT_EVENT_APPL465     EXPORTING466       APPL_EVENT = 'X'  .467 468 * 添加事件内表469   CALL METHOD WA_TREE->SET_REGISTERED_EVENTS470     EXPORTING471       EVENTS                    = EVENTS472     EXCEPTIONS473       CNTL_ERROR                = 1474       CNTL_SYSTEM_ERROR         = 2475       ILLEGAL_EVENT_COMBINATION = 3476       others                    = 4477           .478   IF SY-SUBRC <> 0.479 *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO480 *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.481   ENDIF.482 483   SET HANDLER G_APPLICATION->HANDLE_DOUBLE_CLICK FOR WA_ALVG.484   SET HANDLER G_APPLICATION->HANDLE_HOTSPOT_CLICK FOR WA_ALVG.485   SET HANDLER G_APPLICATION->HANDLE_TOOLBAR FOR WA_ALVG.486   SET HANDLER G_APPLICATION->HANDLE_USER_COMMAND FOR WA_ALVG.487 *  将已定义的双击事件分配到树对象488   SET HANDLER G_APPLICATION->HANDLE_NODE_DOUBLE_CLICK FOR WA_TREE.489   SET HANDLER G_APPLICATION->HANDLE_NODE_CONTEXT_MENU_REQ FOR WA_TREE.490   SET HANDLER G_APPLICATION->HANDLE_NODE_CONTEXT_MENU_SEL FOR WA_TREE.491   "为ALV设置toolbar492   CALL METHOD WA_ALVG->SET_TOOLBAR_INTERACTIVE493       .494 495 ENDFORM.                    " FRM_CREATE_TREE496 497 498 *&---------------------------------------------------------------------*499 *&      Form  FRM_GET_DATA500 *&---------------------------------------------------------------------*501 *       text502 *----------------------------------------------------------------------*503 *      -->P_NODE_KEY  text504 *      -->P_IW_NODETABLE_RELATKEY  text505 *----------------------------------------------------------------------*506 FORM FRM_GET_DATA  USING P_KUNNR507                          P_VTWEG508                          P_VKORG.509 510   CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'511   EXPORTING512     INPUT  = P_KUNNR513   IMPORTING514     OUTPUT = P_KUNNR.515 516   SELECT517      VBAP~VBELN518      VBAP~POSNR519      VBAP~MATNR520      VBAP~NETWR521      VBAP~WERKS522      VBAP~LSMENG523     INTO  TABLE IT_VBAP524     FROM VBAP525     INNER JOIN VBAK ON VBAP~VBELN = VBAK~VBELN526        WHERE VBAK~VKORG = P_VKORG527          AND VBAK~VTWEG = P_VTWEG528          AND VBAK~KUNNR = P_KUNNR529          AND VBAK~AUART NE 'Z001'.530   IF IT_VBAP IS INITIAL.531     MESSAGE S001(00) WITH '数据不存在或者尝试选择下级子节点'.532     LEAVE TO SCREEN 100.533   ENDIF.534 535   LOOP AT  IT_VBAP INTO IW_VBAP.536     CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'537       EXPORTING538         INPUT  = IW_VBAP-VBELN539       IMPORTING540         OUTPUT = IW_VBAP-VBELN.541 542     CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'543       EXPORTING544         INPUT  = IW_VBAP-MATNR545       IMPORTING546         OUTPUT = IW_VBAP-MATNR.547     MODIFY IT_VBAP FROM IW_VBAP .548   ENDLOOP.549 550 ENDFORM.                    " GET_DATA551 *&---------------------------------------------------------------------*552 *&      Form  FRM_GET_NODE_DATA553 *&---------------------------------------------------------------------*554 *       text555 *----------------------------------------------------------------------*556 *  -->  p1        text557 *  <--  p2        text558 *----------------------------------------------------------------------*559 FORM FRM_GET_NODE_DATA .560 561   SELECT A~VKORG562          A~VTWEG563          A~KUNNR564          A~VBELN565          B~VTEXT566          C~VTEXT567     INTO TABLE IT_VBAK568     FROM VBAK AS A569    INNER JOIN TVKOT AS B ON B~VKORG = A~VKORG570    INNER JOIN TVTWT AS C ON C~VTWEG = A~VTWEG571    WHERE B~SPRAS = '1' AND C~SPRAS = '1'.572 573   SORT IT_VBAK BY VKORG VTWEG KUNNR VBELN.574   DELETE ADJACENT DUPLICATES FROM IT_VBAK COMPARING VKORG VTWEG KUNNR.575 576   IF SY-SUBRC <> 0.577 578   ENDIF.579 580   LOOP AT  IT_VBAK INTO IW_VBAK.581     CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'582       EXPORTING583         INPUT  = IW_VBAK-KUNNR584       IMPORTING585         OUTPUT = IW_VBAK-KUNNR.586     MODIFY IT_VBAK FROM IW_VBAK.587   ENDLOOP.588 589 ENDFORM.                    " FRM_GET_NODE_DATA590 *&---------------------------------------------------------------------*591 *&      Form  FRM_SET_ALVTB592 *&---------------------------------------------------------------------*593 *       text594 *----------------------------------------------------------------------*595 *  -->  p1        text596 *  <--  p2        text597 *----------------------------------------------------------------------*598 FORM FRM_SET_ALVTB .599   DATA: IT_TB_EXCLUDE TYPE UI_FUNCTIONS,600         IW_TB_EXCLUDE LIKE LINE OF IT_TB_EXCLUDE.601 602   CLEAR GW_FIELDCAT .603   GW_FIELDCAT-FIELDNAME = 'VBELN' .604   GW_FIELDCAT-SCRTEXT_L = '销售订单' .605   GW_FIELDCAT-HOTSPOT = 'X'.606   GW_FIELDCAT-KEY = 'X'.607   APPEND GW_FIELDCAT TO GT_FIELDCAT .608 609   CLEAR GW_FIELDCAT .610   GW_FIELDCAT-FIELDNAME = 'POSNR' .611   GW_FIELDCAT-SCRTEXT_L = '销售订单项目' .612   APPEND GW_FIELDCAT TO GT_FIELDCAT .613 614   CLEAR GW_FIELDCAT .615   GW_FIELDCAT-FIELDNAME = 'MATNR' .616   GW_FIELDCAT-SCRTEXT_L = '物料编码' .617   APPEND GW_FIELDCAT TO GT_FIELDCAT .618 619   CLEAR GW_FIELDCAT .620   GW_FIELDCAT-FIELDNAME = 'NETWR' .621   GW_FIELDCAT-SCRTEXT_L = '净价' .622   APPEND GW_FIELDCAT TO GT_FIELDCAT .623 624   CLEAR GW_FIELDCAT .625   GW_FIELDCAT-FIELDNAME = 'WERKS' .626   GW_FIELDCAT-SCRTEXT_L = '工厂' .627   APPEND GW_FIELDCAT TO GT_FIELDCAT .628 629   CLEAR GW_FIELDCAT .630   GW_FIELDCAT-FIELDNAME = 'LSMENG' .631   GW_FIELDCAT-SCRTEXT_L = '销售订单数量' .632   APPEND GW_FIELDCAT TO GT_FIELDCAT .633 634   GS_LAYOUT-GRID_TITLE = 'SD分销渠道销售订单数据' .635   "GS_LAYOUT-CWIDTH_OPT = 'X' .636   GS_LAYOUT-ZEBRA = 'X'.637 638 639   IW_TB_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW.640   APPEND IW_TB_EXCLUDE TO IT_TB_EXCLUDE.641   IW_TB_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY.642   APPEND IW_TB_EXCLUDE TO IT_TB_EXCLUDE.643   IW_TB_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW.644   APPEND IW_TB_EXCLUDE TO IT_TB_EXCLUDE.645   IW_TB_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_CUT.646   APPEND IW_TB_EXCLUDE TO IT_TB_EXCLUDE.647   IW_TB_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW.648   APPEND IW_TB_EXCLUDE TO IT_TB_EXCLUDE.649   IW_TB_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW.650   APPEND IW_TB_EXCLUDE TO IT_TB_EXCLUDE.651   IW_TB_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW.652   APPEND IW_TB_EXCLUDE TO IT_TB_EXCLUDE.653   IW_TB_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE.654   APPEND IW_TB_EXCLUDE TO IT_TB_EXCLUDE.655   IW_TB_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW.656   APPEND IW_TB_EXCLUDE TO IT_TB_EXCLUDE.657   IW_TB_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO.658   APPEND IW_TB_EXCLUDE TO IT_TB_EXCLUDE.659 660   CALL METHOD WA_ALVG->SET_TABLE_FOR_FIRST_DISPLAY661     EXPORTING662 *      I_BUFFER_ACTIVE               =663 *      I_BYPASSING_BUFFER            =664 *      I_CONSISTENCY_CHECK           =665 *      I_STRUCTURE_NAME              =666 *      IS_VARIANT                    =667 *      I_SAVE                        =668 *      I_DEFAULT                     = 'X'669       IS_LAYOUT                     = GS_LAYOUT670 *      IS_PRINT                      =671 *      IT_SPECIAL_GROUPS             =672       IT_TOOLBAR_EXCLUDING          = IT_TB_EXCLUDE673 *      IT_HYPERLINK                  =674 *      IT_ALV_GRAPHICS               =675 *      IT_EXCEPT_QINFO               =676 *      IR_SALV_ADAPTER               =677     CHANGING678       IT_OUTTAB                     = IT_VBAP679       IT_FIELDCATALOG               = GT_FIELDCAT680 *      IT_SORT                       =681 *      IT_FILTER                     =682 *    EXCEPTIONS683 *      INVALID_PARAMETER_COMBINATION = 1684 *      PROGRAM_ERROR                 = 2685 *      TOO_MANY_LINES                = 3686 *      others                        = 4687           .688 IF SY-SUBRC <> 0.689 * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO690 *            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.691 ENDIF.692 693 ENDFORM.                    " FRM_SET_ALVTB694 *&---------------------------------------------------------------------*695 *&      Form  FRM_DETAILS696 *&---------------------------------------------------------------------*697 *       text698 *----------------------------------------------------------------------*699 *      -->P_LT_ROWS  text700 *----------------------------------------------------------------------*701 FORM FRM_DETAILS  TABLES   P_LT_ROWS STRUCTURE LVC_S_ROW.702   "插入正确名称 <...>.703   DATA: L_INDEX TYPE LVC_INDEX.704   DATA: IW_V1 LIKE LINE OF IT_VBAP.705 706   READ TABLE P_LT_ROWS INDEX 1.707   IF SY-SUBRC = 0.708     L_INDEX = P_LT_ROWS-INDEX.709     CLEAR IW_V1.710     READ TABLE IT_VBAP INDEX L_INDEX INTO IW_V1.711 712     SET PARAMETER ID: 'AUN' FIELD IW_V1-VBELN.713 714     CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.715   ENDIF.716 ENDFORM.                    " FRM_DETAILS717 *&---------------------------------------------------------------------*718 *&      Form  FRM_HOTSPOT719 *&---------------------------------------------------------------------*720 *       text721 *----------------------------------------------------------------------*722 *      -->P_E_ROW_ID  text723 *----------------------------------------------------------------------*724 FORM FRM_HOTSPOT  USING    P_E_ROW_ID.725   DATA: L_INDEX TYPE LVC_INDEX.726   DATA: IW_V1 LIKE LINE OF IT_VBAP.727   L_INDEX = P_E_ROW_ID.728   CLEAR IW_V1.729   READ TABLE IT_VBAP INDEX L_INDEX INTO IW_V1.730 731   SET PARAMETER ID: 'AUN' FIELD IW_V1-VBELN.732 733   CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.734 735 ENDFORM.                    " FRM_HOTSPOT736 *&---------------------------------------------------------------------*737 *&      Form  FRM_DBLCLICK738 *&---------------------------------------------------------------------*739 *       text740 *----------------------------------------------------------------------*741 *      -->P_ROW_ID  text742 *----------------------------------------------------------------------*743 FORM FRM_DBLCLICK  USING P_E_ROW.744   DATA: L_INDEX TYPE LVC_INDEX.745   DATA: IW_V2 LIKE LINE OF IT_VBAP.746   L_INDEX = P_E_ROW.747   CLEAR IW_V2.748   READ TABLE IT_VBAP INDEX L_INDEX INTO IW_V2.749 750   SET PARAMETER ID: 'AUN' FIELD IW_V2-VBELN.751 752   CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.753 ENDFORM.                    " FRM_DBLCLICK


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|克米亚sap论坛,sap账号,sap系统,sap ides,sap学习机,sap练习环境 ( 渝ICP备18002525号-5 )

GMT+8, 2019-1-20 07:34

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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