添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
动态报表D-Query 添加SQL语句显示

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


前言


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

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

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



缘起


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

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

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

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




改进


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

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

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

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

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


  • 图一



    图二



    图三



    说明


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

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




    SQL编辑器


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

  • ZSQL

  • ZTOAD

  • DB02

  • 具体工具说明详见链接
    无峰,公众号:ABAP开发技巧 SAP工具箱之一键生成报表


    局限性


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

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

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

    期待的编辑器优化格式

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

    优化后的SQL显示 .

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



    总结


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

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

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

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


    本文使用 文章同步助手 同步

    发布于 2022-09-21 10:19