原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
一
简介
动态报表D-Query 是一个用于取代标准QUERY的程序.使用动态报表无需写代码,非开发人员也可生成专业的报表程序.
> 详见动态报表简介 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query简介
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486429&idx=1&sn=8cbab08040255baa4c7495e6e106230d&chksm=cf5dd6ebf82a5ffdf6cd2cca5ef3b3a298dcb7e3aac2b4cae5073af9c6720bf57b5544c57a49&token=1541862579&lang=zh_CN#rd)
**本文主要介绍动态报表的关联多个查询的关联字段名优化**
二
关联多个查询
动态报表允许把多个查询通过关键字段关联起来,比对多个查询的结果,并且允许增加字段对多个查询的结果进行运算.
实际项目中,可以用动态报表的关联查询功能进行各种业务数据的比较
• 计划与实际
• 去年与今年
• 订单与发货
• 采购与收货
• ...
> 详见连接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query 关联多个查询
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485934&idx=1&sn=a7cdf4910ca237bbdac4ae2eec8d69a6&chksm=cf5dd4d8f82a5dce1a0a33646ab8b0a82b54f3b761cf21b76b7fe737372a8ad0a67410f252cc&token=1560906077&lang=zh_CN&scene=21#wechat_redirect)
> 详见连接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query 关联多个查询-补充
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486660&idx=1&sn=2e0812d86f28978be1a57aa017f7b515&chksm=cf5dd1f2f82a58e454a9cc79c9a71db934b260c98603e5c9923d0365e6ba2cf78104a552bc87&token=1541862579&lang=zh_CN#rd)
三
一个小问题
当查询存在多个同名字段时, 使用某个特定的字段无法关联另外一个查询.
示例: 销售订单查询和交货单查询通过客户编码关联.如图一
当销售订单查询使用KAN1的客户字段时 无法关联交货单的查询,如图二
当销售订单查询使用VBAK的客户字段时, 可以关联交货单的查询,如图三
图一
图二
图三
四
问题产生的原因
• 重名的主表字段用<源字段名> (示例KUNNR)
• 重名的从表字段用<源字段名>_<表名>
这样第一个查询中中使用KNA1时,因为是从表, 字段名为 KUNNR_KNA1
与第二个查询中的客户字段的实际字段名 KUNNR 就不一致了. 导致查询关联不上
五
解决方案
配置中增加关联字段名, 用于解决关联字段的同名性问题.
注意事项: 添加关联名称后, 需要通过<刷新字段>按钮刷新查询中的字段名定义
六
解决效果
示例的关联查询,把关联的两个查询的关联字段KUNNR 不管这个字段来自哪个表, 都设置一个同名的关联名称:ZL_KUNNR .
这样两个查询的关联不管使用哪个表的客户字段就都不会有问题了.
七
总结
在项目中实际应用动态报表的关联时,使用了几个复杂查询的关联,发现总会出现关联不上的情况, 后来发现了这个问题.
通过设置关联字段名 解决了这个问题.
**同时,关联字段名也解决了不同名字段的关联问题(只需要设置相同的关联字段名即可).**
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.
越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或者参与话题讨论