将字段数据添加到alv网格中的小计行。

2020-08-25 23:17发布

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

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


我正在使用ALV_GRID_DISPLAY进行小计。 我想在小计行中添加其他字段数据。

有没有办法做到这一点? 下面是我的代码。

SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S32 {color:#3399FF; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }

ls_fieldcat-fieldname ='BUKRS'。
ls_fieldcat-seltext_l ='公司代码'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos = 1.
APPEND ls_fieldcat TO lt_fieldcat 。

ls_fieldcat-fieldname ='ZCODE_DESC'。
ls_fieldcat-seltext_l ='C.Code说明'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos = 2. < br> APPEND ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='ZPARTNER'。
ls_fieldcat-seltext_l ='经销商代码'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =3。
附加ls_fieldcat到lt_fieldcat。

ls_fieldcat-fieldname ='ZNAME_ORG'。
ls_fieldcat-seltext_l ='D.Code说明'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =4。
附加ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='ZCUKY'。
ls_fieldcat-seltext_l ='货币'。
ls_fieldcat-tabname =' GT_OUTPUT'。
ls_fieldcat-col_pos =5。
附加ls_fieldcat至lt_fieldcat。

ls_fieldcat- fieldname ='LAND1'。
ls_fieldcat-seltext_l ='Mercato'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =6。
附加ls_fieldcat至lt_fieldcat。


> ls_fieldcat-fieldname ='ZGRADE'。
ls_fieldcat-seltext_l ='评级酥脆'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =7。
附录ls_fieldcat TO lt_fieldcat。 br>
ls_fieldcat-fieldname ='ZANADEFI'。
ls_fieldcat-seltext_l ='评级anadefi'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =8。
APPEND ls_fieldcat TO lt_fieldcat。

ls_fieldcat-fieldname ='ZELIMIT'。
ls_fieldcat-seltext_l ='标准(外部限制)'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-do_sum = 'X'。
ls_fieldcat-col_pos =9。
附加ls_fieldcat至lt_fieldcat。
清除ls_fieldcat。

ls_fieldcat-fieldname ='ZBLIMIT'。
ls_fieldcat-seltext_l ='最大值 (内部限制)'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-outputlen ='17'。
ls_ fieldcat-do_sum ='X'。
ls_fieldcat-col_pos =10。
附加ls_fieldcat至lt_fieldcat。
清除ls_fieldcat。

ls_fieldcat-fieldname ='ZZELIM_PERC'。
ls_fieldcat- seltext_l ='标准限制的40%'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-do_sum ='X'。
ls_fieldcat-col_pos = 11.
附加ls_fieldcat TO lt_fieldcat。< br> CLEAR ls_fieldcat。

ls_fieldcat-fieldname ='ZFIDIS_AMT'。
ls_fieldcat-seltext_l ='Guarantee Fidis active'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos = 12.
附加ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='GSART'。
ls_fieldcat-seltext_l ='产品类型'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =13。
附加ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='ZGSART_DESC'。
ls_fieldcat-seltext_l ='产品类型描述'。 '。
ls_fieldcat-col_pos =14。
附加ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='TB_BLI_SUM'。
ls_fieldcat-seltext_l ='杰出(利用率)'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =15。
APPEND ls_fieldcat-TO lt_fieldcat。

ls_fieldcat-fieldname ='TB_BLI_ADJ'。
ls_fieldcat-seltext_l ='月末调整'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos = 16.
附录ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='ZZBLIMIT_IL_UTL'。
ls_fieldcat-seltext_l ='Utilizzato fidis'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos = 17 。
附加ls_fieldcat到lt_fieldcat。

SORT gt_output by zpartner。


gs_sort-fieldname ='ZPARTNER'。 "排序取决于哪个字段
gs_sort-up ='X'。"升序
追加gs_sort到gt_sort。
清除gs_sort。

gs_sort-fieldname ='ZELIMIT'。 " sub取决于哪个字段
gs_sort-subtot ='X'。" sub取决于此字段
* gs_sort-up ='X'。 "升序
追加gs_sort到gt_sort。





清除gs_sort。

调用功能'REUSE_ALV_GRID_DISPLAY'
导出
i_callback_program = sy-repid
it_fieldcat = lt_fieldcat
it_sort = gt_sort"可以总计sub
TABLES
t_outtab = gt_output。
如果sy-subrc <>0。
*实现合适的 错误处理
ENDIF。

(37.8 kB)

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

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


我正在使用ALV_GRID_DISPLAY进行小计。 我想在小计行中添加其他字段数据。

有没有办法做到这一点? 下面是我的代码。

SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S32 {color:#3399FF; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }

ls_fieldcat-fieldname ='BUKRS'。
ls_fieldcat-seltext_l ='公司代码'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos = 1.
APPEND ls_fieldcat TO lt_fieldcat 。

ls_fieldcat-fieldname ='ZCODE_DESC'。
ls_fieldcat-seltext_l ='C.Code说明'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos = 2. < br> APPEND ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='ZPARTNER'。
ls_fieldcat-seltext_l ='经销商代码'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =3。
附加ls_fieldcat到lt_fieldcat。

ls_fieldcat-fieldname ='ZNAME_ORG'。
ls_fieldcat-seltext_l ='D.Code说明'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =4。
附加ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='ZCUKY'。
ls_fieldcat-seltext_l ='货币'。
ls_fieldcat-tabname =' GT_OUTPUT'。
ls_fieldcat-col_pos =5。
附加ls_fieldcat至lt_fieldcat。

ls_fieldcat- fieldname ='LAND1'。
ls_fieldcat-seltext_l ='Mercato'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =6。
附加ls_fieldcat至lt_fieldcat。


> ls_fieldcat-fieldname ='ZGRADE'。
ls_fieldcat-seltext_l ='评级酥脆'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =7。
附录ls_fieldcat TO lt_fieldcat。 br>
ls_fieldcat-fieldname ='ZANADEFI'。
ls_fieldcat-seltext_l ='评级anadefi'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =8。
APPEND ls_fieldcat TO lt_fieldcat。

ls_fieldcat-fieldname ='ZELIMIT'。
ls_fieldcat-seltext_l ='标准(外部限制)'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-do_sum = 'X'。
ls_fieldcat-col_pos =9。
附加ls_fieldcat至lt_fieldcat。
清除ls_fieldcat。

ls_fieldcat-fieldname ='ZBLIMIT'。
ls_fieldcat-seltext_l ='最大值 (内部限制)'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-outputlen ='17'。
ls_ fieldcat-do_sum ='X'。
ls_fieldcat-col_pos =10。
附加ls_fieldcat至lt_fieldcat。
清除ls_fieldcat。

ls_fieldcat-fieldname ='ZZELIM_PERC'。
ls_fieldcat- seltext_l ='标准限制的40%'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-do_sum ='X'。
ls_fieldcat-col_pos = 11.
附加ls_fieldcat TO lt_fieldcat。< br> CLEAR ls_fieldcat。

ls_fieldcat-fieldname ='ZFIDIS_AMT'。
ls_fieldcat-seltext_l ='Guarantee Fidis active'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos = 12.
附加ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='GSART'。
ls_fieldcat-seltext_l ='产品类型'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =13。
附加ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='ZGSART_DESC'。
ls_fieldcat-seltext_l ='产品类型描述'。 '。
ls_fieldcat-col_pos =14。
附加ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='TB_BLI_SUM'。
ls_fieldcat-seltext_l ='杰出(利用率)'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos =15。
APPEND ls_fieldcat-TO lt_fieldcat。

ls_fieldcat-fieldname ='TB_BLI_ADJ'。
ls_fieldcat-seltext_l ='月末调整'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos = 16.
附录ls_fieldcat至lt_fieldcat。

ls_fieldcat-fieldname ='ZZBLIMIT_IL_UTL'。
ls_fieldcat-seltext_l ='Utilizzato fidis'。
ls_fieldcat-tabname ='GT_OUTPUT'。
ls_fieldcat-col_pos = 17 。
附加ls_fieldcat到lt_fieldcat。

SORT gt_output by zpartner。


gs_sort-fieldname ='ZPARTNER'。 "排序取决于哪个字段
gs_sort-up ='X'。"升序
追加gs_sort到gt_sort。
清除gs_sort。

gs_sort-fieldname ='ZELIMIT'。 " sub取决于哪个字段
gs_sort-subtot ='X'。" sub取决于此字段
* gs_sort-up ='X'。 "升序
追加gs_sort到gt_sort。





清除gs_sort。

调用功能'REUSE_ALV_GRID_DISPLAY'
导出
i_callback_program = sy-repid
it_fieldcat = lt_fieldcat
it_sort = gt_sort"可以总计sub
TABLES
t_outtab = gt_output。
如果sy-subrc <>0。
*实现合适的 错误处理
ENDIF。

(37.8 kB)
付费偷看设置
发送
5条回答
暮风yp
1楼-- · 2020-08-25 23:40

如果您真的想花时间这样做(因为很舒适),则必须处理AFTER_REFRESH事件,调用方法GET_SUBTOTALS以获得对小计行的引用,然后修改这些行中的值。 雷蒙德(Raymond)在此问题中提供了示例代码: https://answers .sap.com/questions/5452886/modify-grand-total-in-alv-grid.html

My梦
2楼-- · 2020-08-25 23:32

您尝试点击此图标吗? (针对每一行),以保存变体并重新运行程序

风早神人
3楼-- · 2020-08-25 23:21

您好,

无法执行此操作,它将仅显示计算出小计的列的值,因为它将仅是唯一值,对于所有其他列 多个值,因此无法确定要显示哪个值。 (在您的情况下,所有值似乎都相同),但并非总是如此。

您将需要通过在abap代码旁边进行小计并显示最后几行来创建abap报告。 无法通过布局管理进行管理。

但是,您可以选择所有字段并选择它们的小计,然后选择要显示的第一个向下钻取级别。 这将显示所有字段,但以不同的行显示。

现在,如果将视图更改为列表显示,则可以看到第一行包含所有字段值,但是列表显示中将再次显示多行以及其他细分级别。

因此,我的建议创建一个新的ABAP报告,并在ABAP代码中进行小计,并仅在报告中显示总行。

也可以在下面的Wiki页面上给您一些更多的想法。

在ALV网格中显示小计文本

问候

Abhishek

南山jay
4楼-- · 2020-08-25 23:38

您必须创建2个ALV网格。

一个总计,不使用ALV的"总计/总计"功能。

一个包含详细信息,当用户双击该行时显示

您期望的功能在标准ALV中不存在。 它在Report Painter/Report Writer中

落灬小鱼
5楼-- · 2020-08-25 23:20

使用标准的total/sub total功能,我可以看到类似波纹管的显示:

您要在屏幕上显示的文本是排序字段的文本,并且在该组的第一次中仅显示1。 我认为是正确的...全文显示可能需要在sub_total事件中进行处理。

一周热门 更多>