原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
一
前言
动态报表(D-Query)是我花了很多心思开发的一个报表工具,主要用于无代码快速生成查询报表,想尝试的朋友可以联系微信392077.
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query简介
> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486429&idx=1&sn=8cbab08040255baa4c7495e6e106230d&chksm=cf5dd6ebf82a5ffdf6cd2cca5ef3b3a298dcb7e3aac2b4cae5073af9c6720bf57b5544c57a49#rd)
**本文主要介绍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 申请进入公众号讨论群**