DB02 中实现SQL语句一键生成报表

点击蓝字 关注我们

前言

之前尝试通过公众号投票送出这个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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值