动态报表 DQuery 优化查询关联

作者:ABAP技巧与实战 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发

原创 无峰 [ 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的客户字段时, 可以关联交货单的查询,如图三

动态报表 DQuery 优化查询关联 - 封面图
动态报表 DQuery 优化查询关联 - 封面图

图一

动态报表 DQuery 优化查询关联 - 封面图
动态报表 DQuery 优化查询关联 - 封面图

图二

动态报表 DQuery 优化查询关联 - 封面图
动态报表 DQuery 优化查询关联 - 封面图

图三

问题产生的原因

当查询中所有关联的表有同名字段时. 为了解决字段重名问题. 会给字段重命名.重命名规则如下

• 重名的主表字段用<源字段名> (示例KUNNR)

• 重名的从表字段用<源字段名>_<表名>

这样第一个查询中中使用KNA1时,因为是从表, 字段名为 KUNNR_KNA1

与第二个查询中的客户字段的实际字段名 KUNNR 就不一致了. 导致查询关联不上

解决方案

配置中增加关联字段名, 用于解决关联字段的同名性问题.

注意事项: 添加关联名称后, 需要通过<刷新字段>按钮刷新查询中的字段名定义

动态报表 DQuery 优化查询关联 - 封面图
动态报表 DQuery 优化查询关联 - 封面图

解决效果

示例的关联查询,把关联的两个查询的关联字段KUNNR 不管这个字段来自哪个表, 都设置一个同名的关联名称:ZL_KUNNR .

这样两个查询的关联不管使用哪个表的客户字段就都不会有问题了.

动态报表 DQuery 优化查询关联 - 封面图
动态报表 DQuery 优化查询关联 - 封面图

总结

在项目中实际应用动态报表的关联时,使用了几个复杂查询的关联,发现总会出现关联不上的情况, 后来发现了这个问题.

通过设置关联字段名 解决了这个问题.

**同时,关联字段名也解决了不同名字段的关联问题(只需要设置相同的关联字段名即可).**

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

请微信联系管理员

syjf1976

sharry_xlp

Yannick_Duan

申请进入公众号讨论群提问或者参与话题讨论

ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「动态报表DQuery优化查询关联.md」整理生成,仅用于内部技术分享与学习交流。