如何使用CL_SALV_TABLE仅显示汇总值而不显示单个记录

2020-08-19 08:59发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我需要编写会生成alv...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我需要编写会生成alv的代码。 在ALV中,时间字段将根据Kostenart进行汇总。 附加要求是ALV应该仅输出汇总金额,而不是记录。 这意味着,如果Kostenart Y001获得2条记录,共135分钟(90 + 45),那么只有135个minitues会输出而不是90和45。如果我的问题不清楚,请随时查看屏幕截图。 它将提供更清晰的视图。

您的建议将受到高度赞赏。

预先感谢

Arnab

 cl_salv_table =>工厂(
   导入r_salv_table = g_o_table
   更改t_table = g_it_output)。

   " Funktionen aktivieren
   g_o_functions = g_o_table-> get_functions()。
   g_o_functions-> set_all(abap_true)。
   g_o_display = g_o_table-> get_display_settings()。

   g_o_display-> set_striped_pa​​ttern(abap_true)。
   g_o_columns = g_o_table-> get_columns()。

   "嗯,spalten aus zu blenden
   g_o_column?= g_o_columns-> get_column('MANDT')。
   g_o_column-> set_technical(if_salv_c_bool_sap => true)。
   g_o_column?= g_o_columns-> get_column('AWE_ID')。
   g_o_column-> set_technical(if_salv_c_bool_sap => true)。

   "乐观主义者
   g_o_columns-> set_optimize(abap_true)。

   " Um Daten zu sortieren
   g_o_sorts = g_o_table-> get_sorts()。
   g_o_sorts-> add_sort(列名='KOSTENART'小计= abap_true)。
   g_o_sorts = g_o_table-> get_sorts()。
   g_o_sorts-> add_sort(列名='MATNR'小计= abap_true)。

   "祖·阿格里格瑞伦
   g_o_agg = g_o_table-> get_aggregations()。
   g_o_agg-> add_aggregation('ZEIT')。
 

(24.1 kB)
4条回答
天桥码农
2020-08-19 09:51

NB:为什么不通过屏幕截图中的示例进行说明? (45 + 90给出135,而不是用2 + 3 + 1给出6)。

我怀疑仅显示一条总行而不显示明细行的解决方案是否可行,因为这违反了ALV

我猜想,一个更可行的解决方案是自动折叠那些KostenArt ='Y001'的明细行,但我怀疑使用标准功能是否可行。 您可以压缩/扩展整个级别的节点,但不能仅对一组小计的行进行压缩/扩展。 调整标准(!!),也许可以通过更改属性MT_GROUPLEVELS_FILTER来实现,该属性设置在CL_GUI_ALV_GRID的私有方法GET_GROUPLEVELS中/当然,您还需要确定由SALV实例实例化的网格实例。 属性具有属性COMPRESS,该属性已转移到前端以指示要压缩的组。

严重的是,您不应该更改标准,因为这样做很冒险,并且会花费很多时间 它。 因此,一种解决方法是通过将详细信息行汇总到主内部表中的一条详细信息行中(而不是ALV功能)来限制其详细信息。

一周热门 更多>