美文网首页SAP简友广场
SAP小技巧 商业图形二 函数调用

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

作者: syjf1976_abap | 来源:发表于2021-06-22 22:32 被阅读0次

    点击蓝字 关注我们

    前言

    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

    约定

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

     

    相关文章

      网友评论

        本文标题:SAP小技巧 商业图形二 函数调用

        本文链接:https://www.haomeiwen.com/subject/qfppyltx.html