原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
一
前言
动态报表(D-Query)是我花了很多心思开发的一个报表工具,写公众号文章的初衷就是介绍并推广动态报表,效果不太好, 但是从此却习惯了写公众号文章.
**本文主要概括了的介绍动态报表的功能.更多详情请参阅动态报表的其它文章(可以通过文中链接进入)**
二
报表开发总结
• 大部分的报表开发都是明细报表开发, 通过查询条件查询中表中符合条件的数据,ALV呈现出来
• 大部分的明细报表,如果限制条件太少, 会呈现大量的数据, 用户很难在大量数据中查看所需的内容(导出EXCEL二次加工?)
• 偶尔会有用户提出开发层级报表,用户可以选择按统计显示,还是按明细显示,并且统计显示时,能选中行查看选中行的明细
• 大部分报表用户都希望可以通过双击字段跳转到特定的事务代码显示单据或主数据(调用SAP标准功能)
• 报表都需要授权管理,用户只能查询有授权的数据, 授权字段一般是单据类型,组织机构(如地点,公司代码等)
• 部分报表需求用户提出通过ICON区分数据,让数据看起来更清楚.
• 特殊行业的报表,用户希望把特殊字段转列显示(比如鞋服行业的尺码).
基于上述总结,再结合系统的标准QUERY功能及SE16N功能,再加上动态选择屏幕及动态SQL语句,完成了动态报表的开发.
在长期的使用过程中,不断完善,并添加一些有价值的新功能.
三
动态报表的价值
进过一段时间的使用(目前项目上的大部分报表都是使用动态报表开发完成的),总结了一下,动态报表具有如下的应用价值
_**01** _
**无代码实施**
动态报表是实现项目无代码的实施的一种尝试,任何人员通过授权(包含TCODE及表内容的查询授权),都可以开发出高质量的报表,极大的简化了项目的报表开发,缩短项目开发周期.
_**02** _
**快速分析工具**
动态报表提供了一个工具,可以快速分析数据.
比如:我要查询系统中所有的移动类型及出现的频次,可以输入MSEG表,勾选移动类型输出, 就可以立即获取结果.
如果使用其它方法,需要花费的更多的时间或者需要一定的SQL技能
_**03** _
**分析平台**
动态报表提供了一个分析平台,你可以把所有的临时数据分析行为保存记录下来,并且随时可以调出之前的数据分析
_**04** _
**快速开发工具**
动态报表提供了一个快速报表开发工具, 可以快速实现一个报表的开发部署
_**05** _
**报表规范**
动态报表提供了一个报表规范,所有动态报表开发的程序,都具备汇总->明细功能.
该规范可以逐渐培养用户查看报表的行为,先从特定纬度查看汇总数据,再选中行查看所需的明细.
这样做避免一次性获取过多的明细内容,极大优化了对服务器资源的耗用.
并且用户也能更快的获取报表的响应(基于HANA数据库强大的汇总功能,汇总数据可以极其快速的响应)
_**06** _
**开放用户设计**
动态报表允许开放用户设计功能. 这样用户可以基于已经设计好的报表,自行调整并保存个性化的报表.(增强的变式功能,
可以保存选择条件.变式功能也允许全局变式,其它用户也能载入全局变式).减少用户报表需求对开发人员的依赖.
_**07** _
**系统监控**
动态报表提供了一个监控功能. 可以定期刷新查询的结果,可用于后台处理的进度监控,或者系统报错的监控等.
_**08** _
**数据核对**
动态报表提供了一种统计核对功能,该功能可以快速实现多份基于特定纬度的统计结果的比对,比如:从其他系统抽取一份销售明细,和系统中的发票明细按照地点/日期纬度统计数量,金额,比较结果是否一致
_**09** _
**报表性能优化**
动态报表程序内部性能优化,解决了因为开发人员能力导致的报表质量不稳当对服务器性能的影响.
四
常用功能点介绍
_**01** _
**快速查询**
基于表/视图或表连接建立查询,可以对表/视图进行授权管理,以控制用户的查询行为.
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 取代QUERY的动态报表
> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247483706&idx=1&sn=e2f55cd3f2e0e7a26b5a008e781564f1&chksm=cf5ddc0cf82a551ad3b801afa66dc87efb0dd26d05312792788c324bad48dff3571153439958#rd)
_**02** _
**统计/明细输出**
统计/明细两层输出,改变用户输出习惯,先快速查看特定纬度的统计信息,再针对特定统计条目查看明细.
_**03** _
**双击跳转**
双击跳转,无需配置,通过对单元格的双击,可以自动识别并跳转到常用的主数据/单据显示界面.
_**04** _
**附带描述**
关键字段附带描述,关键字段,比如单据类型/组织机构通过配置通用码表,可以快速附带描述.
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表-添加编码描述(码表)
> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247484510&idx=1&sn=ac2e37dfb0318033fde9b8126aa79be1&chksm=cf5dd968f82a507e3c129b6c9ec7c07f13d9116b91f9ab1baae0a671a8a0cd4ad9c5e074dce3#rd)
_**05** _
**选择控制**
默认选择控制,用户可以通过灵活配置设置选择条件的默认值.可以控制默认选择条件只读,不被用户修改.
_**06** _
**标准授权检查**
标准授权功能,通过标准授权对象的检查,判断用户是否有权显示特定数据,授权结果影响选择条件
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query的授权管理
> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247484636&idx=1&sn=ace68392d05de34cfe1963adf4981699&chksm=cf5dd9eaf82a50fc760e65ce1ff801b0f29c431ce72c0d66ef97b9aa7b12a507354cf296c656#rd)
_**07** _
**自定义授权**
自定义授权功能,通过一套自定义授权体系,快速针对用户/用户组授权并控制报表显示内容,授权结果影响选择条件
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query的授权管理
> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247484636&idx=1&sn=ace68392d05de34cfe1963adf4981699&chksm=cf5dd9eaf82a50fc760e65ce1ff801b0f29c431ce72c0d66ef97b9aa7b12a507354cf296c656#rd)
_**08** _
**列颜色**
列颜色,可以自定义列颜色,定制个性化的报表输出.
_**09** _
**字段描述调整**
字段描述快速调整,字段描述来自表定义,也可以自行调整,调整后,点击刷新生效.
**_10_ **
**输出顺序调整**
字段输出顺序可快速调节,点击输出复选框时,系统自动设置一个顺序,也可以最终一起调整顺序
_**11** _
**查询设计版本**
查询设计内容保存版本功能,自动记录了查询的每次修改,也可以手工创建版本.可以快速返回到之前的版本.
_**12** _
**生成TCODE**
查询快速部署,查询保存可以生成一个TCODE并写入传输请求,传入目标系统完成查询部署到生产系统.
> 详见链接
>
> 无峰,公众号:ABAP开发技巧 [ 动态报表-开发一个报表
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247484089&idx=1&sn=281146d7e6a0c772a3beb9b2fa9022e5&scene=19&token=1901077898&lang=zh_CN#wechat_redirect)
**_13_ **
**变式功能**
更全面的变式功能,用户可以在设计基础上定义并保存自己的变式(包含选择条件,字段描述,选择内容,查询结果,明细结果等).
**_14_ **
**字段特殊处理**
数量/金额字段的特殊处理,解决SAP数量,金额字段退货取负数的设定.
**_15_ **
**新增字段**
新增数量/金额字段功能,并且可以为新增的字段设置SQL表达式,或者计算表达式.
SQL表达式在SQL执行时使用,作用于明细数据
计算表达式在SQL执行完使用,作用于结果数据
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query 新增计算字段
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485984&idx=1&sn=f87dfcd7d33021df24e7f2e637fa32b5&scene=19&token=1901077898&lang=zh_CN#wechat_redirect)
**_16_ **
**NULL查询条件支持**
对于左连接的表,允许对左连接表的字段输入NULL 查询条件,只查询右表不存在的记录或通过排除NULL 只查询右表中存在的数据
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query 添加NULL查询支持
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485604&idx=1&sn=4ed61a1374d2ffd5356254939d32a6ce&scene=19&token=1901077898&lang=zh_CN#wechat_redirect)
**_17_ **
**动态选择标记**
启用动态选择后,执行查询TCODE 进入的选择屏幕允许用户动态添加选择条件.
**_18_ **
**详细的帮助文档**
所有功能都可以通过F1帮助看到详细的功能介绍.界面帮助按钮会跳转到公众号关于动态报表的文章集合,详细介绍功能.
_**19** _
**下穿功能**
跳转到其它查询(通过简单配置,可以从一个查询选中行跳转到相关其它查询,并且只获取和选中行相关的数据)
> 详见链接动态报表-下穿功能 无峰,公众号:ABAP开发技巧 [ 动态报表-下传功能
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247484418&idx=1&sn=fd6f92c8e0c141a9b99a861ce152d7b1&scene=19&token=1901077898&lang=zh_CN#wechat_redirect)
_**20
** _
**合并查询**
通过简单配置, 可以把多个查询的结果通过主键关联到一起,形成一个综合查询结果. 字段名中可以区分来源,也可以通过颜色设置来区分
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query 关联多个查询
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&
...