原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
一
前言
动态报表D-Query 是一个用于取代标准QUERY的程序.使用动态报表无需写代码,非开发人员也可生成专业的报表程序.
> 详见动态报表简介 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query简介
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486429&idx=1&sn=8cbab08040255baa4c7495e6e106230d&chksm=cf5dd6ebf82a5ffdf6cd2cca5ef3b3a298dcb7e3aac2b4cae5073af9c6720bf57b5544c57a49&token=799069602&lang=zh_CN&scene=21#wechat_redirect)
**本文主要介绍怎么优化显示动态报表设计中的字段选择**
二
字频
如果动态报表关联了几个表比如 EKKO / EKPO /EKET . 这三个标准表都有很多字段. 这样在动态报表的设计界面就会有很多字段,如下图,
需要滚动很多屏幕,才能看完所有的字段.
之前考虑了一个表并非所有字段都有用, 遂引入了一个字频概念, 统计每个表的字频,仅显示存在字频的字段.
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query 通过字频优化字段选择
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247488136&idx=1&sn=0be4ba60c9c42e84955ec99fda7cd9b1&chksm=cf5dcfbef82a46a896f599f385b98cec21e629ade41879ae00258ffb5d58722b18990b10abd0&token=599965758&lang=zh_CN#rd)
三
新的问题及解决
但在设计好的动态报表中,因为字段太多. 很难看出究竟哪些字段参与了整个设计.
(当然通过执行报表可以根据执行结果看出哪些字段参与了报表设计.但这样似乎挺麻烦,没有一目了然所有配置,并且会漏掉一些特殊设置 ).
所以考虑了新增一组过滤按钮. 可以按照字段是否参与了配置来过滤掉没有参与配置的字段, 这样. 可以通过该过滤按钮直观的看出该动态报表的设计.
如下图,
<<使用>> 按钮可以用来仅显示参与了报表设计的字段. 因为报表的设计由很多配置点组成. 所以需要对所有配置点检查是否设置. 从而确定是否显示该字段.
<<取消字段过滤>>则切换回显示所有字段
四
解决方式
借用了FLAGDEL字段. 首先判断字段的配置点是否存在内容, 如果存在,则设置 FLAGDEL = ‘A’.
后续使用ALV的标准过滤器对FLAGDEL过滤. 这样可以简单的切换过滤和不过滤状态
五
总结
字频过滤及使用过滤优化了动态报表的设计, 让设计者无需面对太多无用的字段. 可以直观的呈现出所需字段或设计好的字段. 方便后续调整.
当然,也可以使用ALV的标准过滤器对某个设计点(比如输出复选框)进行过滤,查看所有输出的字段.