动态报表D-Query 增强点

点击蓝字 关注我们

前言

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

详见动态报表简介

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

本文主要介绍动态报表提供的增强点,以便满足复杂的报表设计

特殊报表需求

该财务报表的具体需求

详见链接

无峰,公众号:ABAP 技巧与实战动态报表D-Query 自定义选择屏幕调用

在上述链接的财务报表示例中. 业务提出还需要在配置表中增加行,同时设置该行由其它相关行计算而得. 比如下图

其中 3999行由 SUM(A) – SUM(B) – SUM(C).

这个需求很难通过CDS视图实现,只能对获取的数据再次加工

31b133b4e4653fa21bad27e3d2a0da54.png

改进

为了处理这个需求. 做了两个改进

01

调整配置表

配置表ZTFI1027中增加了三个字段

  • 排序码     用于确定最终输出的行顺序

  • 公式编号 用于设置特定行参与汇总的组

  • 计算公式 用于设定该行由什么公式完成计算

02271e91ecac07100baa5d41e2e415ec.png

02

给动态报表添加出口

动态报表中添加一个配置点:配置数据加工函数

可以通过复制函数Z_FG_BC125_DEMO的界面生成一个新的函数, 在该函数中可以完成如下处理

  • 可以通过修改CT_FCAT 控制ALV的输出格式

  • 可以通过调用CC_GRID的方法,控制ALV的显示(排序/过滤/冻结等等).

  • 可以通过修改CT_ALV的内容,调整报表的输出内容.

8b530b3d99f73283d242f81ea50bd2ba.png

实现过程

针对该报表,设置一个处理函数

Z_FG_BC125_FI1027 配置到动态报表中. 如上图

函数中实现如下功能

隐藏特定字段

8ed5112883962faf71a1609e875c27ff.png

按公式编号统计金额

fe644450f4753f22a2cf14a32b682ff1.png

511a12b1d346dafbd6518094ad7e3603.png

添加公式行

1c6afa778ed16ab628c594b001653ff0.png

排序

61a25c459ded10115adbef7e03944810.png

公式计算

公式计算部分,调用了标准函数 EVAL_FORMULA 完成某些简单的公式,计算出结果

fd790572ffaad6ff61980ca6782ccf23.png

小技巧

SPRING

 lv_str = | {  } |.

这个赋值方式把数值转成字符串时,会自动前置负号

EVAL_FORMULA 输出必须是浮现型变量, 否则数字会变小. 

809110304d0853586051fcc8a27d5830.png

最终达成效果

通过读取配置表获取排序码为 3999的行.并通过配置的公式计算出该行的金额.

d4bb71fec86da92c8a873daedd1781de.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、付费专栏及课程。

余额充值