点击蓝字 关注我们
一
前言
行表转列表在某些特定行业,比如鞋服行业应用较多. 相比行表,列表呈现方式更直观,便于数据的比较.
比如,图二的列表呈现形式可以更直观的看出每个人员电视销量的对比或同一个人员不同产品销量的对比.
前文给出了行转列的基本方法及通用类ZCL_REP_COMM_LINE_COL.
详见连接
无峰,公众号:ABAP 技巧与实战ABAP基础知识 行表与列表的转换
详见连接无峰,公众号:ABAP 技巧与实战SAP工具箱 行表转列表的通用类
本文主要介绍这个通用类的补充功能:ALV调用行转列

二
调用方式
全屏ALV调用
函数 REUSE_ALV_GRID_DISPLAY_LVC
在ALV添加自定义功能,调用类方法 ,传入ALV显示的内表.
CALL METHOD zcl_rep_comm_line_col=>convert_line_to_col_full_alv( it_data = gt_alv ).
对象ALV调用
在ALV添加自定义功能, 调用类方法,传入ALV显示的内表及ALV对象.
CALL METHOD
zcl_rep_comm_line_col=>CONVERT_LINE_TO_COL_ALV( IT_DATA = GT_ALV IC_GRID = GC_GRID )

三
界面操作步骤
添加了行转列功能的ALV按如下方式操作可以执行任意字段和数据的行转列
01
选中行
行选择不是必须的.如果选择了行.则转列的数据限定在选中的行里. 如果不选中行. 所有数据参与转列.

02
选中列
选择列时,如果要保留选中的行. 按住CTRL键再鼠标选择列.
选择列不是必须的.
如果选中了列. 接下来的弹框中会限定选中的列并自动勾选.请确保至少选中了两个关键字列和一个指标列
如果没有选中列. 接下来的弹框中会显示所有字段,需要人工勾选

03
弹窗设置关键要素
点击行转列功能按钮后,会弹窗确认转列的关键要素
弹窗中需要勾选字段并为字段设置行转列功能
K关键字(允许多个字段) : 关键字自动设置
C转成列表的字段(允许多个字段): 手工选择需要转列的关键字.
M指标字段(允许多个字段): 指标会自动设置
转中列的弹窗

未选中列的弹窗

如果关键要素不完整 ,会报错

正确的设置

05
结果呈现
点击确认后,ALV呈现最终的结果.结果数据是基于关键字及转列字段的统计值

06
切换字段描述
在转列结果中可以通过按钮切换字段描述
-
编码 转列的字段=指标字段描述+编码
-
描述 转列的字段=指标字段描述+描述 (需要码表框架支持)
-
序号 转列的字段=指标字段描述+序号
码表框架无峰,公众号:ABAP 技巧与实战SAP开发框架系列之 码表框架



四
多字段转列,多指标的情况
转列字段会整合在一起呈现结果.
多个指标的内容分别呈现


五
关于类源代码
行表转列表的通用方法实现比较简单. 建议通过本文提供的逻辑自行开发实现.
如果你对这个工具感兴趣或者想通过源代码了解实现方式.可以打赏文章后, 联系微信号392077索取源代码.
六
总结
行转列封装ALV处理功能,极大的简化了行转列的操作. 提升报表功能. 允许用户根据需求自行确定需要转列的内容.
给用户提供了更多的视角去显示数据.
SAP商业图形本质上也是一种行转列的显示,只是用图形化呈现结果.
详见无峰,公众号:ABAP 技巧与实战SAP小技巧 商业图形(一)简介
后续的改进方向:如果原ALV字段允许修改. 则行转列中的字段也允许修改.修改后的数据保存后,回写到原ALV内容中.
THE
END
网友评论