点击蓝字 关注我们
一
前言
动态报表(D-Query)是我花了很多心思开发的一个报表工具,主要用于无代码快速生成查询报表,想尝试的朋友可以联系微信392077.
详见链接
无峰,公众号:ABAP 技巧与实战动态报表D-Query简介
本文主要介绍D-Query中的双击跳转到事务代码显示主数据或单据的功能
二
双击跳转
通过动态报表查询的数据,默认会跳转到常用主数据或者常用单据的显示.这个跳转基本上是基于SAP常用字段名来识别确认的.
比如
MATNR 是商品主数据, 双击MATNR字段就会跳转到MATNR对应的显示事务代码MM43(因为是零售项目,所以跳转到MM43,没有跳转到MM03,可以通过配置实现跳转MM03). 图一
VBELN 是销售订单号的字段名. 双击VBELN就会跳转到VA03 去显示销售订单. 图二
图一
图二
三
识别方式
双击跳转通过如下几种方式识别双击的对象,进而跳转到对应的事务代码显示对象.
01
字段名识别
通过特定的字段名称识别数据对象.这种方式大致可以识别70%左右的数据对象.
查询如果关联了多个表都有相应的字段名:比如VBAK,VBAP 都有字段VBELN. 显示清单中的字段会附加表名 VBELN_VBAK VBELN_VBAP. 字段名修复去除掉附加的_VBAK . 识别字段名VBELN.
02
域名识别
通过字段名识别的跳转只能解决大部分情况的常规单据调整,比如有些字段都表示客户:比如KUNNR 售达方 KUNWE 送达方. 穷尽此类字段是一种方式, 但是也可以用这类字段的共同属性: 域名KUNNR来识别客户字段, 进而跳转到BP显示客户信息.
03
特殊字段识别
SHOWP 用于显示商品图片
ICON / ERRNO 用于显示BAPI调用的错误信息
VBELN / AUBEL / VGBEL 优先识别为销售订单, 再次为交货单,再次为发票
04
配置表识别
上述三种方式都需要预制特定的字段名或域名,识别后跳转. 无法处理一些特殊的情况,比如:
字段AUFNR,因为受预制对象的局限,无法识别为内部订单或生产订单.
发票校验和会计凭证字段名都是BELNR,有可能识别错误.
MBLNRCR 这种自定义的字段无法识别.
......
此时需要通过配置表识别方式解决跳转问题 . 理论上配置表识别可以99%解决双击跳转问题(剩下的1%是无法通过CALL TRANSACTION 跳转的数据对象).
四
配置表识别
配置表识别方式可以解决数据对象识别不了或者识别错误的情况.
01
配置表识别原理
大部分TCODE的跳转都可以通过如下方式执行
传递参数ID的值
调用事务代码跳过第一屏
(个别事务通过这个方式会有瑕疵,比如商品凭证,通过MIGO 跳转会依赖于上次MIGO是显示商品凭证,需要通过特定的函数 MIGO_DIALOG 跳转)
02
配置表字段
ZCXID 查询ID
CALLGP 调用组 (用于区分一次调用的相关字段,之所以没有TCODE. 是因为一个报表中可能有多组字段跳转到一个TCODE)
POSNR 序号
TCODE 事务代码(一个调用组中使用相同的事务代码)
FNAME 字段名
PARAMID 设置/获取参数标识 (字段内容传递到特定的参数ID),一般情况下,通过界面的F1帮助可以查询到这个参数ID 如图四
图三
图四
03
配置示例
如下图的配置: 配置了三组字段都跳转到会计凭证显示.
五
总结
双击跳转是报表中一个常见的功能. 动态报表D-Query 整合项目中的常用主数据,单据的识别.
(函数 Z_BC_REP_CALL_TRANSACTION).
可以直接跳转到目标对象.对于一些不常用的数据对象,则可以通过配置来实现双击跳转.
THE
END
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)
公众号 : syjf1976_abap
ABAP开发技巧
微信号 : 392077
请微信联系管理员:
syjf1976
sharry_xlp
Yannick_Duan 申请进入公众号讨论群