理论教育 计算合计值,方法与步骤详解

计算合计值,方法与步骤详解

时间:2023-05-31 理论教育 版权反馈
【摘要】:表 6-63一个字段的聚合规则表示为类CL_SALV_WD_AGGR_RULE的一个对象。设置聚合类型下面的计算(聚集)类型可供选择:● 总计:所有的字段值加在一起。表 6-65设置结果行的位置在ALV输出中可以定义是否显示高于或低于该行中所包含的计算中的计算结果行。表 6-676.4.3.2中间结果默认情况下,字段中的所有值在聚集过程中都可以进行计算。

计算合计值,方法与步骤详解

可以对数值类型数据进行计算:生成聚合条件,计算的结果显示在一个单独的结果行中。

一般对一个字段的所有值使用聚集计算的过程中,也能够获得中间结果。要做到这一点,必须对ALV输出按一定条件排序,根据排序结果将行分组。

可以进行以下聚合设置:

● 创建、获取和删除聚合规则。

● 设置聚合。

● 生成中间结果。

● 隐藏或显示聚合计算或中间结果的接口元素。

可以为一个字段创建聚合规则中的最大值。聚合是ALV输出中一个字段的属性。创建、获取或删除字段的汇聚规则,使用接口类IF_SALV_WD_AGGR(实施类CL_SALV_WD_ FIELD)的方法,见表6-63。

6-63

978-7-111-54749-5-Chapter06-73.jpg

一个字段的聚合规则表示为类CL_SALV_WD_AGGR_RULE的一个对象。

注:如果以一个新的结构分配ALV输出一个新的数据表,则各个字段的聚合规则被自动删除。

6.4.3.1 聚合设定

可以对字段值的计算进行以下设置:

● 设置聚合类型。

● 设置结果行的位置。

● 禁止某个字段的聚合。

(1)设置聚合类型

下面的计算(聚集)类型可供选择:

● 总计(Total):所有的字段值加在一起。

● 最小值(Minimum):确定字段中的最小值。

● 最大值(Maximum):确定字段中的最大值。

● 平均值(Average):确定所有字段值的几何平均值。

要定义计算类型,使用类的CL_SALV_WD_AGGR_RULE的方法,见表6-64

6-64

978-7-111-54749-5-Chapter06-74.jpg

除了上面列出的计算类型,也可以决定数据记录的总数。测试结果将显示在结果中排在第一个可用的列中。由于该设置会影响整个ALV输出,因此可以使用接口类IF_SALV_ WD_FIELD_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-65。

6-65

978-7-111-54749-5-Chapter06-75.jpg

(2)设置结果行的位置

在ALV输出中可以定义是否显示高于或低于该行中所包含的计算中的计算结果行。可以使用接口类IF_SALV_WD_FIELD_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-66。

6-66

978-7-111-54749-5-Chapter06-76.jpg

(3)禁止某个字段的聚合

默认情况下,各个数值类型字段的数据都可以聚合。如果需要,程序员可以禁止某个字段的聚集。这具有以下效果:

● “设置”对话框中没有对该列计算的标签页。

● 即使在应用程序中定义该字段的汇总规则,计算也不进行。

要禁止字段的聚集功能,使用接口类IF_SALV_WD_AGGR(实施类CL_SALV_WD_FIELD的方法,见表6-67。

6-67

978-7-111-54749-5-Chapter06-77.jpg

6.4.3.2中间结果 (www.daowen.com)

默认情况下,字段中的所有值在聚集过程中都可以进行计算。同时,聚集还可以生成中间结果。当生成中间结果时,将数据记录包含的值进行分组生成中间结果,并将中间结果显示在一个单独的结果行。

要生成中间结果,必须进行以下设置:

● 指定哪些字段值要计算中间结果,可以创建相关字段的聚合条件。总的结果显示在结

果行。

● 指定哪些数据记录包含一个中间结果,将数据记录分组,在ALV输出对分组的字段排

序,该字段包含在中间结果准则中。

● 要产生的中间结果,需将字段进行聚集,该字段包含在中间结果的规则中。

● 要显示中间结果,需在显示屏上激活中间结果显示。

注:产生中间结果的最常用的方法是使用小计。中间结果可用于所有聚合类型的中间结果。

(1)中间结果关联操作

● 生成中间结果。

● 显示中间结果。

● 指定级别下的中间结果。

● 设置结果行的位置。

● 禁用产生中间结果。

(2)先决条件

● 已经创建了至少一个字段可聚合的聚合条件。

● 该字段中间结果的准则不能被合并,包含一个字母数字类型数据的字段(用于分组)。

(3)生成中间结果

要在一个字段已经具有的聚合条件下产生中间结果,用另一列的字段创建一个排序条件。

在这种条件下,可以指定是否要生成中间结果。要做到这一点,可以使用类CL_SALV_ WD_SORT_RULE的方法,见表6-68。

6-68

978-7-111-54749-5-Chapter06-78.jpg

(4)显示中间结果

已经完成所有设置后,要显示生成的中间结果,必须激活这些中间结果的显示。要做到这一点,可以使用接口类IF_SALV_WD_FIELD_SETTINGS(实现类CL_SALV_WD_CON FIG_TABLE)的方法,见表6-69。

6-69

978-7-111-54749-5-Chapter06-79.jpg

(5)指定级别下的中间结果

如果已经定义了多个字母数字字段的中间结果,则该结果在多个级别小计:中间结果分层显示,根据级别并标有特定数目的点。用户可以使用这些点显示和隐藏中间结果的条目。在应用程序中,可以显示或隐藏一个或多个级别的小计条目。

也可以折叠中间结果:在这一过程中,可以隐藏所有数据记录和任何相应低级别的小计只有结果行小计的最高级别结果和总计结果行保持可见。

对于这些功能,可以使用接口类IF_SALV_WD_FIELD_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-70。

6-70

978-7-111-54749-5-Chapter06-80.jpg

(6)禁用产生中间结果。

默认情况下,某个字段合计的中间结果被自动显示在ALV输出中。所有排序字母数字类型数据的字段被解释为可能的中间结果的计算准则,从而提供中间结果。

可以禁止特定字段中间结果的产生。如果应用程序在这一字段产生中间结果,则这些设置对ALV输出没有影响。

注:用户可以指定想要的列,以显示中间结果。如果是禁止生成中间结果的字段,则没有显示给用户的特定列。

要禁止字段产生中间结果,使用接口类IF_SALV_WD_SORT(实现类CL_SALV_WD_ FIELD)的方法,见表6-71。

6-71

978-7-111-54749-5-Chapter06-81.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈