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

点击蓝字 关注我们

前言

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

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

在考虑动态报表引入图形显示时,就一直研究怎么简化商业图形的调用.通过一周多的努力,完成了类 ZCL_REP_COMM_GRAPH

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

开发思路

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

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

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

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

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

  • 根据商业图形显示函数的规则(维度最大值).获取最终显示的图形的数据,

  • 最终调用GRAPH_MATRIX 显示图形.

调用方式

主要区分了三个调用方式

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

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

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

01

全屏ALV显示图形

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

02

对象ALV显示图形

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

03

内表显示图形

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

呈现效果

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

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

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

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

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

01

选中两列的2D图形

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

02

选中三列的3D图形

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

03

选中4列的4D图形

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

04

选中行,列

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

控制参数介绍

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

  • 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中.

02

IV_DIM_MAX_METHOD

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

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

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

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

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

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

关于类源代码

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

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

总结

自定义类ZCL_REP_COMM_GRAPH 尝试简化SAP商业图形的显示. 区分了多种调用方式, 根据用户传入的关键字统计,自动识别并显示2D,3D,4D图形. 同时会根据用户传入的最大维度值结合SAP商业图形的最大维度值限制,调整数据内容,把超出最大值的维度归入特殊值OTHERS.

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

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

详见无峰,公众号:ABAP 技巧与实战SAP开发框架系列之 码表框架
  • 可以改变关键字保留方式,

  • 可以改变维度最大值

  • ....

让SAP商业图形更加好用

THE

END


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容