动态报表D-Query 添加SQL语句显示

前言

动态报表D-Query 是一个用于取代标准QUERY的程序.使用动态报表无需写代码,非开发人员也可生成专业的报表程序.

详见动态报表简介

无峰,公众号:ABAP 技巧与实战动态报表D-Query简介

本文主要介绍动态报表新增功能:添加SQL语句显示

缘起

动态报表允许新增字段,并且能给新增字段使用SQL表达式

详见链接

无峰,公众号:ABAP 技巧与实战动态报表D-Query 新增计算字段

如果新增字段的SQL表达式写的有问题, 执行时会报SQL错误.比如下图,新增字段使用了错误的表达式,执行动态报表时报错

同时也因为动态报表的一些未知的问题, 当连接关系特别复杂时,有可能导致执行SQL报错.

4970e68cc94cc911724fc0fb4af7112c.png

改进

在执行的清单显示中及明细显示清单中,各添加了一个功能,用于显示当前执行的SQL语句

这样,当SQL执行报错时,就可可以通过该功能查看具体的SQL语句内容. 以便判断具体的错误原因.

  • 如图一, 可以看出,读取的字段 a~kwmeng 不存在.

  • 如图二. 对应成功执行的,能看到执行的SQL语句

  • 如图三, 明细显示中可以点击查看读取明细的SQL语句

5ffbe062fc1bbb43ae7899afebc1b503.png

图一

23b965d0262d3a05e50f26c59714de6b.png

图二

cbbbe5be27fd8f3627d44e2ad836c617.png

图三

说明

显示的SQL语句是ABAP SQL 语句, 去掉了INTO 子句,可以通过ZTOAD(一个来自网络的ABAP-SQL编辑器)验证. 

如果想通过DB02的SQL编辑器验证, 需要调整成HANA SQL语句.(简单的SQL语句可以把~替换成.即可)

09a714e74e863a7c3fdd1c09639b401d.png

SQL编辑器

支持ABAP/HANA的SQL编辑器工具

  • ZSQL

  • ZTOAD

  • DB02

具体工具说明详见链接

无峰,公众号:ABAP开发技巧SAP工具箱之一键生成报表

局限性

因为构造的SQL语句并没有考虑编辑器优化显示, 整个动态SQL语句放到了一个string字符串. 显示SQL也仅仅时通过CL_DEMO_DISPLAY 把这个字符串呈现出来. 因此该SQL语句的阅读性很差.

需要放到其它文本编辑器中去手动换行. 以便于阅读理解该SQL语句.

如果你有什么方法可以自动优化SQL语句的显示,请不吝赐教一下. 多谢. (似乎ABAP编辑器对SQL的显示优化也不尽如人意)

ce5b1bbf9143003c4f55596437651ebf.png

期待的编辑器优化格式

b7a3082d986df92d10a15b52f348ea58.png

测试了标准函数 PRETTY_PRINTER . 效果也不太好

b85c9614b576b7da1fc72e64fdecb93a.png

优化后的SQL显示 .

使用了cl_demo_output=>write_text输出字符串,该方法会依赖于空格识别完整单词. 但因为group by 语句中 多个字段通过逗号分割,无法被自动分行.后续考虑优化cl_demo_output=>write_text . 允许识别逗号自动分行. 这样SQL语句的显示就完美了.
 

0da0965828e75349a21b1ccfd05d37ba.png

总结

通过项目中的应用,逐渐改进动态报表的功能.

添加SQL语句看起来只是一个很简单的改进, 却能让动态报表的使用人员感受到更加友好的交互.

当查询报错或对查询结果有质疑时,可以通过查看/核对SQL语句来检查动态报表的表连接,字段选择等问题. 更加方便的定位错误原因.

SQL语句的显示尚待优化,以便更好的阅读.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值