本教程之前的步骤,我们已经介绍了如何在 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 的代码行数总和。

下面是详细的实现步骤。


注销
1k 声望1.6k 粉丝

invalid