SAP小技巧 商业图形二 函数调用

2021-10-29 23:53发布


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

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

点击蓝字 关注我们

前言

SAP标准函数呈现图形大概有两种方式

函数组 SGFW GFW: Display (Standard) Graphics 或者类CL_GUI_GP_PRES GFW  Business graphic(函数组SGFW 也是调用改类,所以归入一类方法)

函数组BUSG SAP商业制图 后面简称商业图形


本文主要讲解SAP商业图形相关函数调用的注意事项


各函数调用方式

下面的函数调用示例中只介绍了基本参数,更多参数的详细说明请参照函数文档


01

GFW_PRES_SHOW


这个函数主要用来形成2D图形.

该函数需要传入一个屏幕容器,因此可以嵌入到屏幕中的任意位置.

支持以下几种图形方式

  • GFW_PRESTYPE_LINES    折线图

  • GFW_PRESTYPE_AREA    区域图

  • GFW_PRESTYPE_HORIZONTAL_BARS  横向柱状图

  • GFW_PRESTYPE_PIE_CHART     饼状图

  • GFW_PRESTYPE_VERTICAL_BARS 竖向柱状图

  • GFW_PRESTYPE_TIME_AXIS (line chart with X-time axis) 时间图

因为该函数不是动态报表呈现图形的方向, 因此只测试了饼状图与柱状图. 两种方式传递的数据不太一样,其它图形类似于柱状图.

对于饼状图 

column_texts中存放关键字 GPRVAL VAL1->VAL32存放指标.通过column_texts行对应GPRVAL中的列.第一行对应VAL1 第二行对应VAL2...第32行对应VAL32 . 最大显示32行

下面的几个图演示了映射关系及图形样式


对于柱状图

示例 values-rowtext 作为产品 values-val1/val2 表示不同人员的产品销售. 最大32个人员  column_texts中依次存放每个人员的名称.

该函数对于中文描述支持似乎有BUG . 图示中的中文 冰箱未正常显示.

其它类型的图与柱状图类似,就不再赘述.

GPRVAL结构


02

GRAPH_2D


该函数用于显示2D图形,传入的数据很容易理解, 就是一个关键字,一个指标的内表即可, 最大32行. 超出32可能会报错. 其它的传入参数

  • DISPLAY_TYPE 控制图形类型

  • TITL          标题

  • WINPOS        窗口位置

  • WINSZX        窗口横向百分比

  • WINSZY        窗口纵向百分比


03

GRAPH_3D


三维图形显示.

该函数传入的数据是一个自定义的内表,理论上该内表最大33列, 第一列内容表示一个维度(示例中用姓名),其它每一列字段表示一个维度, 字段值表示指标. 如图示直接赋值. 如果是一个三个字段的内表(两个关键字段,一个指标字段), 则需要通过转换逻辑转换赋值.该函数有个问题,有个维度的值无法显示(这个问题在函数GRAPH_MATRIX_3D中得以解决)


04

GRAPH_MATRIX_3D


同 GRAPH_3D , 改进点是系统提供了六个传入参数,用来设定第二维度6个关键字段描述. 


05

GRAPH_MATRIX_4D


显示四维图形.该函数其它参数类似与GRAPH_MATRIX_3D 多了一组传入参数表示关键字内容

该函数的内容表达非常复杂.通过定义一个37个字段的内表来表达三个关键字,一个指标. 其中一个关键字存放在字段 TEXT 中. 另外两个关键字都是最大6个值 分配映射Y1-Y6 L1-L6 .通过数据处理整合到下图结构的内表中. 整合是把第二,第三关键字内容映射到Y1-Y6,L1-L6. 组合字段内容,构成新的字段 比如 Y1L1 该字段的值是就是关键字 TEXT ,Y1映射的字段值,L1映射的字段值 对应的指标值.

数据定义

转换逻辑

参数传递

内容呈现


06

GRAPH_MATRIX


一个通用函数,用于呈现2D,3D,4D内容.

每个维度最大32个值.超出会报错. 

维度组合不存在的数据,需要补0 .

该函数通过三个维度内表存放关键字内容. 一个数据内表存放指标值. 通过特定逻辑关联纬度值与指标值. 其中2D的关联方式非常简单: 维度与指标一一对应. 3D/4D 则按照以下逻辑对应

  • 数据是统计后的数据: 关键字不重复

  • 循环获取维度

  • 排序数据(维度1,维度2,维度3)

  • 排序三个维度表

  • 依次循环维度3内表,嵌套循环维度2内表,嵌套循环维度1内表, 构造数据内表

该逻辑针对2D,3D,4D都生效.适用于封装的图形显示类.

数据定义

通用解析

关于示例程序

因为代码量过大,需要的可以联系微信号392077索取


总结

SAP商业图形提供的函数虽然给出了详细的示例,但是实际使用还是存在一定的困难.难点就在于多维度的数据表达形式,不同的函数使用了不同的数据表达形式 ,需要理解并处理这些数据表达式. 最终通过函数GRAPH_MATRIX整合了所有的数据表达形式.

THE

END

约定

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

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)



公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077


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

赞赏支持