本教程之前的步骤,我们已经介绍了如何在 ALV 列表输出里,打印一个 ABAP Function Group 下所有 Function Module 的名称,和对应的源代码行数从高到低降序排序。
并且单击某一行的 Function Module 之后,能自动打开 ABAP 代码编辑器,跳转到最后一行。
这个 ALV 工具的输入,需要指定一个 Function Group 名称:
执行之后,显示的 ALV 列表:
单击某一行,自动打开 ABAP 代码编辑器:
本文再继续介绍在 SAP ABAP ALV 里,如何实现分组显示和 SubTotal 即小计效果。
ALV 分组显示,又称为 ALV 的 group 或者 grouping 功能。
这是实际 ABAP 开发项目中经常遇到的需求。
假设有这样的数据结构:
A a1 10
A a2 20
A a3 30
B b1 15
B b2 20
B b3 30
显然,我们希望最后 ALV 显示的内容,分成两组,一组是 A,一组是 B,显示效果如下:
A a1 10
a2 20
a3 30
B b1 15
b2 20
b3 30
如果再加上 <font color='red' size="3pt">Subtotal 即小计效果</font>,那么 A 组和 B 组结束之后,会多出来一个空行,空行的最后一列,包含了每组第三列数字的求和。最后的效果:
A a1 10
a2 20
a3 30
60
B b1 15
b2 20
b3 30
65
在 ABAP 系统里,一个典型的可以通过 ALV 分组显示的场景是,一个 ABAP 开发包可以包含多个 Function Group,每个 Function Group 又包含多个 Function Module.
先看笔者根据上面的场景,实现的分组显示和小计效果。输入 ABAP 开发包的名称,SEU_WIZARD
:
这个 ABAP 开发包下有两个 Function Group
,每个 Function Group
各包含两个 Function Module. 这个 ALV 将 Function Module 的名称和代码行数,按照 Function Group
进行<font color='red' size="3pt">分组显示</font>和小计
, 即分别统计出每个 Function Group 内所有 Function Module 的总代码行数
,最后再对这些 subtotal
再进行一次求和,得到的即是这个 ABAP 开发包内所有 Function Module 的代码行数总和。
下面是详细的实现步骤。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。