点击蓝字 关注我们
一
前言
动态报表(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的动态报表
02
统计/明细输出
统计/明细两层输出,改变用户输出习惯,先快速查看特定纬度的统计信息,再针对特定统计条目查看明细.
03
双击跳转
双击跳转,无需配置,通过对单元格的双击,可以自动识别并跳转到常用的主数据/单据显示界面.
04
附带描述
关键字段附带描述,关键字段,比如单据类型/组织机构通过配置通用码表,可以快速附带描述.
详见链接
无峰,公众号:ABAP 技巧与实战动态报表-添加编码描述(码表)
05
选择控制
默认选择控制,用户可以通过灵活配置设置选择条件的默认值.可以控制默认选择条件只读,不被用户修改.
06
标准授权检查
标准授权功能,通过标准授权对象的检查,判断用户是否有权显示特定数据,授权结果影响选择条件
详见链接
无峰,公众号:ABAP 技巧与实战动态报表D-Query的授权管理
07
自定义授权
自定义授权功能,通过一套自定义授权体系,快速针对用户/用户组授权并控制报表显示内容,授权结果影响选择条件
详见链接
无峰,公众号:ABAP 技巧与实战动态报表D-Query的授权管理
08
列颜色
列颜色,可以自定义列颜色,定制个性化的报表输出.
09
字段描述调整
字段描述快速调整,字段描述来自表定义,也可以自行调整,调整后,点击刷新生效.
10
输出顺序调整
字段输出顺序可快速调节,点击输出复选框时,系统自动设置一个顺序,也可以最终一起调整顺序
11
查询设计版本
查询设计内容保存版本功能,自动记录了查询的每次修改,也可以手工创建版本.可以快速返回到之前的版本.
12
生成TCODE
查询快速部署,查询保存可以生成一个TCODE并写入传输请求,传入目标系统完成查询部署到生产系统.
详见链接
无峰,公众号:ABAP开发技巧动态报表-开发一个报表
13
变式功能
更全面的变式功能,用户可以在设计基础上定义并保存自己的变式(包含选择条件,字段描述,选择内容,查询结果,明细结果等).
14
字段特殊处理
数量/金额字段的特殊处理,解决SAP数量,金额字段退货取负数的设定.
15
新增字段
新增数量/金额字段功能,并且可以为新增的字段设置SQL表达式,或者计算表达式.
SQL表达式在SQL执行时使用,作用于明细数据
计算表达式在SQL执行完使用,作用于结果数据
详见链接
无峰,公众号:ABAP 技巧与实战动态报表D-Query 新增计算字段
16
NULL查询条件支持
对于左连接的表,允许对左连接表的字段输入NULL 查询条件,只查询右表不存在的记录或通过排除NULL 只查询右表中存在的数据
详见链接
无峰,公众号:ABAP 技巧与实战动态报表D-Query 添加NULL查询支持
17
动态选择标记
启用动态选择后,执行查询TCODE 进入的选择屏幕允许用户动态添加选择条件.
18
详细的帮助文档
所有功能都可以通过F1帮助看到详细的功能介绍.界面帮助按钮会跳转到公众号关于动态报表的文章集合,详细介绍功能.
19
下穿功能
跳转到其它查询(通过简单配置,可以从一个查询选中行跳转到相关其它查询,并且只获取和选中行相关的数据)
详见链接动态报表-下穿功能
无峰,公众号:ABAP开发技巧动态报表-下传功能
20
合并查询
通过简单配置, 可以把多个查询的结果通过主键关联到一起,形成一个综合查询结果. 字段名中可以区分来源,也可以通过颜色设置来区分
详见链接
无峰,公众号:ABAP 技巧与实战动态报表D-Query 关联多个查询
21
设置ICON字段
通过特定条件确定ICON内容,可以与常量比较,也可以与记录中的其它字段内容比较
详见链接
无峰,公众号:ABAP开发技巧动态报表D-Query的图标功能
22
转行表显示
可以设定报表直接转为行表显示,也可以在输出结果中使用ALV功能指定关键要素转行表显示,明细中也有转行表功能
详见链接
无峰,公众号:ABAP 技巧与实战动态报表D-Query 添加行表转列表显示
23
SAP商业图形显示
可以直接输出商业图形,也可能通过ALV功能显示商业图形,明细中也可以显示商业图形
详见链接
无峰,公众号:ABAP 技巧与实战动态报表D-Query 添加商业图形显示
24
商品的图片显示
统计或明细输出时,如果附带了商品编码,会自动补充一个热点字段,点击可以显示商品的图片.
25
商品的图片显示
基于行/列的快速勾选功能,通过行,列的选中,点击全选或取消全选功能可以实现快速勾选
该功能需要商品主数据增强字段存放商品图片链接,并且实施了商品图片显示功能,
详见链接中的示例
无峰,公众号:ABAP 技巧与实战SAP操作手册之 通过BSP应用程序调用JS代码
五
商业化尝试
动态报表D-Query尝试商业化,但是这个过程并不顺利.
局限于源代码保护机制,无法通过发送安装包安装,需要远程登陆安装.
局限于对动态报表的价值的推广.
局限于个人商业化运作能力.
局限于个人影响力.
......
这个无法强求,只能且行且看.
在商业化尝试过程中.改变了一些编程的习惯:
更加注意字段的描述,尽量通过字段数据元素的文本详细解释改字段的含义及注意事项. 用户通过字段帮助就能清楚的理解.
更加严格的模块化编程及详细的注释,方便后续阅读程序.
更加全面的考虑问题.
更多的考虑程序性能问题
......
也算有所得吧.
六
总结
动态报表D-Query最初构想来自另外一个报表生成器(ZBC121 可配置清单类报表-代码生成器).
详见链接
无峰,公众号:ABAP 技巧与实战SAP开发框架系列之 报表生成器
在这个报表生成器的基础上, 改进了设计方案(不再生成代码,只生成调用动态报表的TCODE入口). 不断完善功能, 添加新的功能.
动态报表D-Query的功能后续还会不断的添加,如果你有什么好建议,也可以通过公众号交流群提供给我,采纳的建议会发红包答谢.
THE
END
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)
公众号 : syjf1976_abap
ABAP开发技巧
微信号 : 392077
请扫码加入公众号群,提问或参与话题讨论