动态报表D-Query 排序及行转列改进

前言

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

详见动态报表简介

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

本文主要介绍动态报表的排序功能及行转列的改进功能

排序功能缘由

动态报表通过ALV输出, ALV有完整的排序功能,并可以通过保存默认变式设置默认排序.

TIPS

SPRING

所有动态报表的主体程序是同一个程序名. 但是设置变式时,可以指定报表查询ID作为变式的程序名(不一定非要使用当前程序名),这样确保多个查询ID保存的ALV变式不互相冲突.

b4c40148145673582ee9870801f8afcb.png

但因为动态报表的行转列功能中的列字段顺序依赖于源内表中字段内容出现的顺序. 如果源内表没有按转列字段排序, 则转列后的字段名可能不是顺序的. 如下图

基于这个理由,添加了动态排序的功能

ea1439d6638fca129efb0819e0204fac.png

排序功能实现

在动态报表切换到复杂设置后, 可以给字段设置排序方式.为了简化设置,排序功能的优先关系使用了字段输出的先后顺序.

4c967df00d95ef1593bcf6ea5f38fa42.png

c8b1b8977e5bdf822800a423cde54a7e.png

设置排序后的输出效果(按客户字段设置了排序)

fbba709b8444ac2d8ea971bb2e403f30.png

按期间设置了排序,转列后字段顺序正常

c58741f49bb0716b0fc645d61479d4a3.png

行转列的附加字段

动态报表行转列详见链接

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

行转列时,不同的报表可能基于该报表的需求,要求添加比较字段或合计字段.

比较字段:用来比较同一行中的转列内容是否都一致,如果参与比较的只有两列,会补充输出一个差异字段(用于记录两个列的差值).如果有多列,则不会添加差异字段.

合计字段: 把一行中所有转列字段加总. (比如下图的期间字段转列. 财务类报表通常会有加总所有期间金额的需求.)

42e2c93833dc146cb51b3853223fa84a.png

通过动态报表的配置,可以方便的确定特定报表是否需要添加行转列的这些附加字段

274d9f62c1b6c049f99e0c11a3ee6837.png

行转列保留显示的列

对于财务的报表,可能期望仅输出选择期间的最后一期金额及汇总金额. 此时,可以通过保留显示的列功能来设置,

保留所有

  • F     第一列

  • L     最后一列

  • B     第一列和最后一列

264fe6eb35ea0c6f17bbba5b65c44577.png

总结

SAP对基于HANA的开发有个性能优化建议: 计算逻辑下沉.如下图所示. 把计算逻辑尽量放到数据库层面执行. 使用动态报表开发报表类程序吻合了这个建议.

通过CDS视图或HANA视图实现复杂的查询逻辑, 数据的呈现统一通过动态报表实现(包含了汇总-明细,下穿,SAP图表,行转列等丰富的呈现模式)

后续会持续基于动态报表开发报表,归纳总结报表的特性,逐渐优化,完善并添加更多的动态报表功能.

a6b74ab38be899e83f7edc8ba1c51175.png

THE

END

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值