深入源码探索:SAP 标准报表怎样实现不同「报表格式/清单类型」的输出?

简介: 我们知道 SAP 有 3 种常见的报表格式,分别是网格控制(Grid control)、标准清单(Normal list)、多层清单(Hierarchical list)。在很多 SAP 标准报表中,我们可以设置报表按照不同的清单类型进行输出,那么 SAP 是怎么实现这种输出控制的呢?这篇文章,我带大家深入源码探索 SAP 官方实现,学习这种处理机制并总结相关的常见问题。看完这篇文章后,几乎此类 SAP 标准报表问题我们都能轻松应对。

**关键字:SAP 标准报表 深入源码探索 报表格式 清单类型 控制机制 **

文章目录

  • 深入源码探索:SAP 标准报表怎样实现不同「报表格式/清单类型」的输出?
    • 1 自带输出控制的场景
    • 2 报表格式 / 清单类型
      • 2.1 网格控制(Grid control)
      • 2.2 标准清单(Normal list)
      • 2.3 多层清单(Hierarchical list)
    • 3 常遇到的问题
    • 4 深入源码探索 SAP 官方实现
      • 4.1 DEBUG VL06F 标准代码
      • 4.2 控制机制-初始化和更新
      • 4.3 控制机制-输出
    • 5 小结
    • 其他

1 自带输出控制的场景

  • VL06* / VL06O / VL06F / …
  • MB51 / MB52 /…
  • SE11 查表数据

2 报表格式 / 清单类型

2.1 网格控制(Grid control)

最常见、最常用、最友好的 ALV 输出格式。目前实际开发中基本用 cl_gui_alv_grid->set_table_for_first_display 替代。

"技术上对应的实现函数(其中一个)
call function 'REUSE_ALV_GRID_DISPLAY'

2.2 标准清单(Normal list)

古董、常见于标准报表、Query 也仍支持。目前实际开发中基本用 cl_gui_alv_grid->set_table_for_first_display 替代。

"技术上对应的实现函数(其中一个)
call function 'REUSE_ALV_LIST_DISPLAY'

2.3 多层清单(Hierarchical list)

常见于标准报表。目前实际开发中基本用 cl_gui_alv_tree->set_table_for_first_display 或 simple tree 控件替代。

"技术上对应的实现函数(其中一个)
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

3 常遇到的问题

  • ABAP 接到将标准报表从 List 格式 转换成 Grid 格式输出的开发需求
    用户不知道这是系统标准支持的,一般经验的业务顾问也不知道,一般经验的开发顾问也不知道。
    因此顾问们埋头苦干实现需求,有复制原标准程序改造的,有 submit 标准程序后重新输出的。
    看这篇文章后泪流满面的顾问,先收藏一下?
  • 设置缺省的输出格式,两种方法
    • (1)在 SU01 或 SU3 的参数页签设置内存参数和值(Memory ID and Value)
    • (2)在具体执行的程序上设置

4 深入源码探索 SAP 官方实现

4.1 DEBUG VL06F 标准代码

在 display 之前 初始化 alv 设置

4.2 控制机制-初始化和更新

我专门讲这段控制机制,不仅为了说明输出原理,也为了展览这段 SAP 标准代码,很多经验不足的顾问在此类机制闭环的程序开发上仍需修炼!

4.3 控制机制-输出

  • 第一级输出控制:层级和清单

  • 第二级输出控制:Grid 和 List

5 小结

  • SAP 标准报表有几种格式选择,是技术迭代更新的产物,又因为 SAP 必须向下兼容,因此以前发布的报表一般都可选格式输出。
  • 不是所有古老的 SAP 标准报表都被重新实现了 Grid 格式。
  • 现在一般只区分 Grid 和 Tree,而不再区分 Grid 和 List(过时的技术)。
  • Grid 技术推荐:cl_gui_alv_grid->set_table_for_first_display 。
  • Tree 技术推荐:cl_gui_alv_tree->set_table_for_first_display 。
  • 第 3 节是核心价值,第 4.2 节是核心知识。

其他

我的微信群、QQ群和其他发布平台。

  • 关于微信群、QQ群和其他发布平台

长期提供开发和运维服务。

  • 关于提供开发和运维服务的详情

深入源码探索:SAP 标准报表怎样实现不同「报表格式/清单类型」的输出?相关推荐

  1. CoreCLR源码探索(八) JIT的工作原理(详解篇)

    在上一篇 我们对CoreCLR中的JIT有了一个基础的了解,这一篇我们将更详细分析JIT的实现. JIT的实现代码主要在https://github.com/dotnet/coreclr/tree/m ...

  2. CoreCLR源码探索(六) NullReferenceException是如何发生的

    NullReferenceException可能是.Net程序员遇到最多的例外了, 这个例外发生的如此频繁,以至于人们付出了巨大的努力来使用各种特性和约束试图防止它发生, 但时至今日它仍然让很多程序员 ...

  3. CoreCLR源码探索(五) GC内存收集器的内部实现 调试篇

    在上一篇中我分析了CoreCLR中GC的内部处理, 在这一篇我将使用LLDB实际跟踪CoreCLR中GC,关于如何使用LLDB调试CoreCLR的介绍可以看: 微软官方的文档,地址 我在第3篇中的介绍 ...

  4. CoreCLR源码探索(四) GC内存收集器的内部实现 分析篇

    在这篇中我将讲述GC Collector内部的实现, 这是CoreCLR中除了JIT以外最复杂部分,下面一些概念目前尚未有公开的文档和书籍讲到. 为了分析这部分我花了一个多月的时间,期间也多次向Cor ...

  5. Golang源码探索----GC的实现原理(6)

    推荐文章: Golang源码探索----GC的实现原理(1) Golang源码探索----GC的实现原理(2) Golang源码探索----GC的实现原理(3) Golang源码探索----GC的实现 ...

  6. 一个免费开源、跨平台的可视化源码探索项目

    [公众号回复 "1024",免费领取程序员赚钱实操经验] 今天我章鱼猫给大家推荐一个查看源码的神器,超级棒! Sourcetrail,它是一个免费开源.跨平台的可视化源码探索项目. ...

  7. android 自定义关机界面,android源码探索之定制android关机界面的方法

    本文实例讲述了android源码探索之定制android关机界面的方法.分享给大家供大家参考.具体如下: 在Android系统中,长按Power键默认会弹出对话框让你选择"飞行模式" ...

  8. 一般源码安装添加的GD库 是不支持 jpeg 格式的图片的

    一般源码安装添加的GD库 是不支持 jpeg 格式的图片的,只支持如下格式 GD Support enabled  GD Version bundled (2.0.34 compatible)  GI ...

  9. Okhttp3 链接池复用机制源码探索

    前文 对于http请求我们都知道开始于TCP链接的三次握手然后传输数据然后释放,如下图 而当我们开启连接复用keep-alive后就是指在上一次链接不立马断开链接在超时范围内复用connection在 ...

最新文章

  1. 2012最炙手可热的10项IT技术——相对应的技术书
  2. [Contest20171109]函数(lipshitz)
  3. 字符串表示的大整数相乘
  4. linux服务器挂载不上nfs,我遇上的挂载不上NFS文件系统的坑
  5. 快逸报表参数查询前报表不显示
  6. SQLite 入门教程(二)创建、修改、删除表
  7. js或css文件后面的参数是什么意思?
  8. MacOS 12.0.X系统提示“未能装载磁盘映像,错误代码为109”的临时解决方法
  9. 数据预处理之将类别数据数字化的方法 —— LabelEncoder VS OneHotEncoder
  10. Linux 命令 之 【stat】 查看文件状态。 (包括修改时间)
  11. 计算机二级公共基础知识资料(考点集合)
  12. Ubuntu运行坦克大战
  13. Minidump 文件分析工具
  14. 入门Struts1第一讲——Struts1入门就这么简单
  15. java程序设计概念对象先行_《Java程序设计概念:对象先行》【摘要 书评 在线阅读】-苏宁易购图书...
  16. CTF密码学解题思路
  17. 《平凡的世界》读后感
  18. uboot源码阅读(二)什么是江湖,链接文件u-boot.lds
  19. Python的集合框架
  20. [深度学习论文笔记][Adversarial Examples] Deep Neural Networks are Easily Fooled: High Confidence Predictions

热门文章

  1. 正则表达式:只允许中英文、数字、下划线,且下划线不能在首尾
  2. CentOS下搭建Gitea-自己的git服务器
  3. PS 平转立的教程 红绿的挫
  4. 高内聚,低耦合的实现方式
  5. android 设置繁体环境,Android更改中文和繁体中文的区域设置无法正常工作
  6. 啊哈算法第二章 栈、队列、链表
  7. java问题的英语对话_十二句你应该掌握的英语口语表达,让你不再和老外尬聊,建议收藏...
  8. SQL Server数据库关系图和数据库中数据的操作(添加,查询,修改,删除)
  9. 毕业生找工作必看求职月历
  10. 港联证券|A股指数呈现震荡格局 关注航天军工、半导体等板块