点击蓝字 关注我们
前言
之前尝试通过公众号投票送出这个SQL语句一键生成报表的功能. 奈何有点不自量力,投票数远低于期望值. 本想作罢. 但是公众号群中有人提出想要这个功能. 所以还是写了这篇文章介绍一下实现方式(源代码部分采用付费阅读后索取的方式,如果你想购买, 请确保你的系统中的TCODE: DB02有SQL编辑器功能)
一
功能介绍
请查看相关链接了解一键生成报表的操作方式.
SQL语句一键生成报表
无峰,公众号:ABAP 技巧与实战公众号互动 投票获取源码(一键生成报表)
如果你的生产系统执行DB02很慢,请参考链接文章优化
无峰,公众号:ABAP 技巧与实战SAP小技巧之 加速SQL编辑器启动
二
额外的注意事项
DB02中的SQL语句属于HANA语言的Native SQL语句,不同于ABAP的OPEN SQL语句,所以SQL语句中必须注意以下事项
表连接中必须使用集团字段MANDT(如果表是集团相关表-表的第一主键是MANDT或CLIENT)
必须在输出字段中添加集团字段 MANDT 或 CLIENT(该字段会被生成逻辑特殊处理-使用当前登录集团限制)
如下图示例
三
增强注释的额外功能
注释内容对DB02的SQL结果也有效, 会影响最终输出字段的描述(在不生成程序的情况下).
这个特性可以用来解决一些DB02中通过特殊函数或公式输出的字段没有字段描述的问题
--<使用字段描述:ALL>
--<MATNR:测试商品字段名>
四
程序覆盖提示
如果注释中的程序号已经存在并且程序描述与当前程序不一致,会给出一个覆盖提示. 以确保新生成的程序不会覆盖已经存在的程序(如果程序号和描述都一致,则直接覆盖,不提示)
五
最大行限制
生成的程序会保留一个最大记录数的限制条件. 目的是为了快速获取部分结果. 实际报表执行时,请注意调整该限制值,以便获取完整的数据.
六
实现方式
实现方式分两个部分(安装程序会自动完成所有内容,这里的介绍可以作为一个安装后的检查)
1 .增强部分: 用于传递SQL语句到程序生成器(图一)
在类 CL_HDB_SQL_EXECUTOR
方法 EXEC_QUERY_DYN 开头添加隐式增强
2. 程序生成器: 用于封装SQL语句生成一个可执行程序ZBC123(图二)
生成的程序 ZBC123_<NNNNN>
注意事项:
生成的程序没有附加TCODE. 如果需要请自行创建.
生成的程序没有分配开发类.可以用SE80重新分配程序到开发类(图三)
程序的传输可以使用标准功能(SE80中的写入传输请求,图三)
图三
图一
图二
七
关于程序的安装
请查看链接文章,了解安装步骤.
通用安装过程
无峰,公众号:ABAP 技巧与实战SAP工具箱之 ABAP安装程序V3.0
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)
公众号 : syjf1976_abap
ABAP开发技巧
微信号 : 392077
公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群
后文是付费部分, 如果需要源代码,请付费阅读后,联系微信号 392077