SAP 工具箱商业图形三简化商业图形显示

作者:ABAP技巧与实战 约 7 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, WM, 仓库管理, 开发, 数据工程
SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

**点击蓝字** 关注我们

前言

SAP商业图形项目中使用较少,究其原因也不排除调用比较麻烦的因素.

SAP商业图形提供了一组函数,整合在函数组BUSG中,其中GRAPH_MATRIX函数整合了2D,3D,4D的调用,适合用来作为SAP商业图形整合类使用.

在考虑动态报表引入图形显示时,就一直研究怎么简化商业图形的调用.

通过对商业图形的测试验证,慢慢形成了一个简化思路,最终开发完成了类 ZCL_REP_COMM_GRAPH.

**本文主要介绍一个自开发的类,简洁快速的实现SAP商业图形呈现.**

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

开发思路

• 把内表或ALV显示中的行/列选择作为输入.

• 通过字段属性识别关键字,指标.

• 根据关键字个数确定图形的维度,超过三个关键字则保留三个.

• 如果没有关键字或指标,提示不输出图形.

• 如果指标超过一个,保留第一个.

• 根据商业图形显示函数的规则(维度最大值).加工显示图形的数据.

• 最终调用GRAPH_MATRIX 显示图形.

调用方式

主要区分了三个调用方式

• 全屏ALV显示图形 :方便全屏ALV调用

• 对象ALV显示图形 :方便对象ALV调用

• 内表显示图形 : 不通过ALV, 程序中直接调用

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

_**01** _

**全屏ALV显示图形**

全屏ALV调用只需要传递控制参数及内表即可

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

_**02** _

**对象ALV显示图形**

对象ALV调用传入控制参数,ALV对象,内表

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

_**03** _

**内表显示图形**

不通过ALV, 程序中直接调用.传递控制参数,字段集(通过LVC_T_FCAT定义),内表即可

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

呈现效果

对于ALV调用的,根据行列选择与否,有以下几种调用方式

仅选中列: 选中列作为维度和指标(数量/金额字段).使用所有数据

仅选中行 : 选中的行用来限定显示数据的范围, 使用所有列(前三个关键字作为维度,第一个数字或金额作为指标)

选中行/列: 选中的行限定数据范围,选中的列限定维度与指标

通过自定义按钮,根据获取的维度判断显示2D,3D,4D图形.

_**01** _

**选中两列的2D图形**

选中一个关键字,一个指标,按关键字统计后显示2D图形.

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

_**02** _

**选中三列的3D图形**

选中两个关键字,一个指标,按关键字统计后显示3D图形.

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

_**03** _

**选中4列的4D图形**

选中三个关键字,一个指标,按关键字统计后显示4D图形.

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

_**04** _

**选中行,列**

根据选中的行限定数据,根据选择2列显示2D图形

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

控制参数介绍

不管那种调用方式, 有两个控制参数作为可选项传入

• IV_DIM_COUNT 每个维度的最大行数,2D/3D图形最大值32 默认值32. 4D图形 各维度最大值的乘积不能超过1024.

• IV_DIM_MAX_METHOD 多维保留维度数按指标排序的方式 默认值C

_**01** _

**IV_DIM_COUNT**

该参数控制了维度最大值.

SAP商业图形限定每个维度的最大数:2D/3D 图形最大值32 默认值32. 4D图形,各维度最大值的乘积不能超过1024. 默认为10

比如2D图形显示地点销售数量. 2D图形最多显示32个地点.但是实际地点数很可能超过32个,此时就需要考虑把超出31个的其它值放入OTHERS中.

可以根据指标的顺序或倒序排序保留前31个,后续归集到OTHERS中.

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

_**02** _

**IV_DIM_MAX_METHOD**

多维保留维度数按指标排序的方式 默认值C

如果时2D图形. 超出32 个的保留逻辑比较单一,按指标倒序或正序排序即可. 但是3D/4D图形中保留的维度值的方式就有4中情况

• A全局倒序 : 所有关键字参与统计,按指标倒序排序,保留前面的关键字值.

• B全局顺序 : 所有关键字参与统计,按指标顺序排序,保留前面的关键字值.

• C单独倒序 : 每个关键字单独统计,按指标倒序排序,保留前面的关键字值.

• D单独顺序 : 每个关键字单独排序,按指标顺序排序,保留前面的关键字值.

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

关于类源代码

实现方式不太复杂,只不过需要考虑较多的细节控制,感兴趣的可以根据本文描述的开发思路自行实现一下.

如果确实有需要的,可以打赏文章后联系392077索取.

总结

自定义类ZCL_REP_COMM_GRAPH 尝试简化SAP商业图形的显示. 区分了多种调用方式,

根据用户传入的关键字统计,自动识别并显示2D,3D,4D图形.

同时会根据用户传入的最大维度值结合SAP商业图形的最大维度值限制,调整数据内容,把超出最大值的维度归入特殊值OTHERS.

当前版本只考虑了图形的呈现, 后续考虑添加交互功能

• 可以切换为维度显示关键字或者关键字的描述(这个改动需要结合码表框架,

> 详见 无峰,公众号:ABAP 技巧与实战 [ SAP开发框架系列之 码表框架

> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485048&idx=1&sn=76518aafb6203e7e88a21fa7775c6375&chksm=cf5ddb4ef82a5258b668deae7cb3eac48564369f66f851da68d6247f1db7767126065cf7e480#rd)

• 可以改变关键字保留方式,

• 可以改变维度最大值

• ....

**让SAP商业图形更加好用**

** THE **

** END **

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

**公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群**

SAP 工具箱商业图形三简化商业图形显示 - 封面图
SAP 工具箱商业图形三简化商业图形显示 - 封面图
ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP工具箱商业图形三简化商业图形显示.md」整理生成,仅用于内部技术分享与学习交流。