动态报表D-Query 优化SQL语句显示

前言

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

详见链接

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

本文主要介绍动态报表对SQL语句显示的优化

旧版SQL显示

之前写了一篇文章,介绍了动态报表添加SQL语句的显示,

详见链接

无峰,公众号:ABAP 技巧与实战动态报表D-Query 添加SQL语句显示

当时就感觉显示的SQL语句的易读性比较差,一直想着优化一下这个SQL的显示

动态报表D-Query 优化SQL语句显示_第1张图片

新版SQL显示

新版SQL显示做了如下的改进

  • 关键字粗体呈现

  • 字段分行呈现

  • 关联表分行呈现

  • 同时呈现两种SQL语句:ABAP SQL和 HANA SQL

  • 分别用不同的注释方式标记ABAP SQL 和 HANA SQL

点击显示SQL语句后,依次显示ABAP SQL 和 HANA SQL,显示的SQL语句去掉了INTO子句部分, 以便于复制粘贴到其它SQL编辑器中使用.

动态报表D-Query 优化SQL语句显示_第2张图片

动态报表D-Query 优化SQL语句显示_第3张图片

动态报表D-Query 优化SQL语句显示_第4张图片

ABAP SQL语句的执行

事务代码ZTOAD 执行ABAP SQL

ZTOAD是网上流传的 ABAP SQL编辑器,可以编写执行ABAP SQL语句(去掉 INTO子句部分),但是因为ABAP SQL语法的新功能比较多. 这个编辑器对有些ABAP SQL会误报错,该工具不可全信.

动态报表呈现的 ABAP SQL 全文复制到ZTOAD中即可使用

动态报表D-Query 优化SQL语句显示_第5张图片

HANA SQL语句的执行

DB02 SQL编辑器执行HANA SQL

HANA SQL编辑器有多个事务代码入口. 比较常用的是DB02 ,进去后,找到诊断中的SQL编辑器,双击即可使用,

HANA SQL编辑器可以存储SQL语句,方便下次获取后使用

动态报表呈现的HANA SQL 全文复制到 HANA SQL编辑器中即可直接使用.

动态报表D-Query 优化SQL语句显示_第6张图片

动态报表D-Query 优化SQL语句显示_第7张图片

动态报表D-Query 优化SQL语句显示_第8张图片

实现过程

创建了类 ZCL_PRETTY_PRINT_SQL 来输出 SQL语句,

尝试了很多方法,

  • EDITOR-CALL FOR 语句

  • cl_demo_output类

  • PRETTY_PRINTER函数

最终采用 cl_demo_output ,输出较好看,并且可以直接复制,粘贴到其它SQL编辑器中

其中分行部分,需要用到ABAP特殊字符 cl_abap_char_utilities=>newline

DEMO_OUTPUT_NEW是最终使用的SQL显示方法

动态报表D-Query 优化SQL语句显示_第9张图片

源代码

SQL显示源代码的优化方法如下

其中使用 cl_demo_output=>next_section 方法输出关键字,

使用 cl_demo_output=>write_text 方法输出关键字后面附带的子句

后续改进: 在SELECT 字段名后面添加 字段的描述,类型,长度等信息 在表名后面添加表的描述信息

动态报表D-Query 优化SQL语句显示_第10张图片

动态报表D-Query 优化SQL语句显示_第11张图片

动态报表D-Query 优化SQL语句显示_第12张图片

动态报表D-Query 优化SQL语句显示_第13张图片

总结

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

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

也可以通过对SQL的调整,实现一些无法通过动态报表配置的更复杂的SQL, 同时这些复杂SQL可以通过 一键生成程序固定成一个报表程序.

详见链接

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

你可能感兴趣的:(sql,java,数据库,服务器,大数据)