用BDC实现ALV事件多级跳转(例MEK2)
来源:互联网 发布:mac系统怎么看配置 编辑:程序博客网 时间:2024/05/21 10:09
自己做的报表有时候需要点击某行跳转到标准事务代码的需求
最常用的方法是:
SET PARAMETER ID 'XXX' FIELD 'VALUE'. “传值
CALL TRANSACTION 'T-CODE' AND SKIP FIRST SCREEN. "跳转到第一个屏幕
但是发现两个问题:
1,此方法只能跳转到第一个屏幕,如果屏幕中有需要执行才能往下走的就跳转不过去
2,日期格式貌似传值不过去(这个问题有待研究)
这个问题后面在网上找了好多方法,最后老大用BDC解决了(参考ZMM1036,例跳转MEK2)
user_command :
FORM user_command USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield. READ TABLE i_list INDEX selfield-tabindex. CHECK sy-subrc = 0. CASE ucomm. WHEN '&IC1'. "&DATA_SAVE响应保存键 &IC1双击事件* CASE selfield-sel_tab_field. "不判断列 点击任意一列都可以跳转* WHEN '1-LLIEF'.*&-----------------用bdc 跳转 ,可以跳转多级--------------------- PERFORM skip_to_mek2 .*&---------------正常跳转,只能跳转一级------* SET PARAMETER ID 'VKS' FIELD i_list-kschl. "传条件类型PB77* SET PARAMETER ID 'LLI' FIELD i_list-llief. "传供应商* SET PARAMETER ID 'WRK' FIELD i_list-werks. "传工厂* SET PARAMETER ID 'EKO' FIELD i_list-ekorg. "传采购组织* SET PARAMETER ID 'MAT' FIELD i_list-matnr. "传物料编码** SET PARAMETER ID 'ESO' FIELD i_list-esokz. "* SET PARAMETER ID 'KDA' FIELD i_list-datab. "传有效期 这里传开始日期 传不过去?* CALL TRANSACTION 'MEK2' AND SKIP FIRST SCREEN. "跳到第一个屏幕 怎么跳第二次?** ENDCASE. ENDCASE.ENDFORM. "USER_COMMAND
BDC 跳转到屏幕
*&---------------------------------------------------------------------**& Form skip_to_mek2*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM skip_to_mek2. DATA: bdcdata_wa TYPE bdcdata, bdcdata_tab TYPE TABLE OF bdcdata. DATA opt TYPE ctu_params. CLEAR bdcdata_wa. bdcdata_wa-program = 'SAPMV13A'. bdcdata_wa-dynpro = '0100'. bdcdata_wa-dynbegin = 'X'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'BDC_OKCODE'. bdcdata_wa-fval = '/00'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'RV13A-KSCHL'. bdcdata_wa-fval = i_list-kschl. "'PB77'.条件类型 APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-program = 'RV13A777'. bdcdata_wa-dynpro = '1000'. "屏幕编号 bdcdata_wa-dynbegin = 'X'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'BDC_CURSOR'. bdcdata_wa-fval = 'SEL_DATE'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'BDC_OKCODE'. bdcdata_wa-fval = '/00'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'F001'. bdcdata_wa-fval = i_list-llief. "'3365'. 供应商 APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'F002'. bdcdata_wa-fval = i_list-werks."'1000'. 工厂 APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'F003'. bdcdata_wa-fval = i_list-ekorg. "'2000'. 采购组织 APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'F004'. bdcdata_wa-fval = i_list-matnr. "'120101689'.物料编码 APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'F005-LOW'. bdcdata_wa-fval = i_list-esokz. "'0'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'SEL_DATE'. bdcdata_wa-fval = i_list-datab. "'20140818'. 有效期 APPEND bdcdata_wa TO bdcdata_tab.CLEAR bdcdata_wa. bdcdata_wa-program = 'RV13A777'. bdcdata_wa-dynpro = '1000'. bdcdata_wa-dynbegin = 'X'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'BDC_CURSOR'. bdcdata_wa-fval = 'SEL_DATE'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'BDC_OKCODE'. bdcdata_wa-fval = '=ONLI'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'F001'. bdcdata_wa-fval = i_list-llief. "'3365'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'F002'. bdcdata_wa-fval = i_list-werks. "'1000'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'F003'. bdcdata_wa-fval = i_list-ekorg. "'2000'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'F004'. bdcdata_wa-fval = i_list-matnr. "'120101689'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'F005-LOW'. bdcdata_wa-fval = i_list-esokz. "'0'. APPEND bdcdata_wa TO bdcdata_tab. CLEAR bdcdata_wa. bdcdata_wa-fnam = 'SEL_DATE'. bdcdata_wa-fval = i_list-datab. "'20140818'. APPEND bdcdata_wa TO bdcdata_tab. opt-dismode = 'E'. opt-defsize = 'X'. CALL TRANSACTION 'MEK2' USING bdcdata_tab OPTIONS FROM opt.ENDFORM. "skip_to_mek2
上面的BDC子程序先录屏,(以后可以依葫芦画瓢实现):
0 0
- 用BDC实现ALV事件多级跳转(例MEK2)
- ALV双击跳转事件
- abap ALV多级汇总
- OO实现ALV TABLE 九:ALV的事件
- OO实现ALV TABLE 九:ALV的事件
- Function实现ALV Table八:事件
- Function实现ALV Table八:事件
- ALV Call Transaction VK13 Using BDC
- ALV事件
- 用OnClientClick事件中实现跳转
- ALV Data_Changed事件应用一例
- iOS中dismissViewController实现多级模态跳转
- ALV通过F4事件,实现自定义搜索帮助F4
- presentViewController多级跳转返回
- presentViewController多级跳转返回
- alv - 事件详解
- alv - 事件详解
- 传统ALV事件.
- zoj 1021
- 矩阵归零
- How It Works: What are the RING_BUFFER_RESOURCE_MONITOR telling me?
- Struts2 莫名其妙的Invalid field value for field 的异常
- 针对codeblocks:如何使用winmm.lib等等win32编程需要的静态链接库???
- 用BDC实现ALV事件多级跳转(例MEK2)
- 并发数据结构:谈谈volatile变量
- [Drools]JAVA规则引擎 -- Drools
- Linux进程通信之POSIX共享内存
- myeclipse配置resin4
- [Cocoa]深入浅出Cocoa 之动态创建类
- (leetcode)Insertion Sort List
- iptables设置轻量级防护
- cout 小数点后位数