点击此处---> 群内免费提供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_pattern(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)
1)如果用户仍然希望能够将视图从折叠状态展开到未折叠状态,则可以保存布局。 这是一次用户过程。
您可以保存折叠的ALV视图的布局并将其设置为系统或只是用户默认设置。 如果是默认值,它将在用户下次打开该ALV时以这种方式自动打开。 这样,您不必编程任何东西。
2)如果用户不想了解任何详细信息,而总是只查看聚合,则应在将该表传递给ALV之前对其进行聚合。
NB:为什么不通过屏幕截图中的示例进行说明? (45 + 90给出135,而不是用2 + 3 + 1给出6)。
我怀疑仅显示一条总行而不显示明细行的解决方案是否可行,因为这违反了ALV
我猜想,一个更可行的解决方案是自动折叠那些KostenArt ='Y001'的明细行,但我怀疑使用标准功能是否可行。 您可以压缩/扩展整个级别的节点,但不能仅对一组小计的行进行压缩/扩展。 调整标准(!!),也许可以通过更改属性MT_GROUPLEVELS_FILTER来实现,该属性设置在CL_GUI_ALV_GRID的私有方法GET_GROUPLEVELS中/当然,您还需要确定由SALV实例实例化的网格实例。 属性具有属性COMPRESS,该属性已转移到前端以指示要压缩的组。
严重的是,您不应该更改标准,因为这样做很冒险,并且会花费很多时间 它。 因此,一种解决方法是通过将详细信息行汇总到主内部表中的一条详细信息行中(而不是ALV功能)来限制其详细信息。
Sandra Rossi 感谢您的解释。 我已经尝试过使用compress。 让我们看看请求制作程序的人是否满意。 再次感谢。 非常感谢。
一周热门 更多>