深入源码探索:SAP 标准报表怎样实现不同「报表格式/清单类型」的输出?
深入源码探索: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)在具体执行的程序上设置
- (1)在 SU01 或 SU3 的
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 标准报表怎样实现不同「报表格式/清单类型」的输出?相关推荐
- CoreCLR源码探索(八) JIT的工作原理(详解篇)
在上一篇 我们对CoreCLR中的JIT有了一个基础的了解,这一篇我们将更详细分析JIT的实现. JIT的实现代码主要在https://github.com/dotnet/coreclr/tree/m ...
- CoreCLR源码探索(六) NullReferenceException是如何发生的
NullReferenceException可能是.Net程序员遇到最多的例外了, 这个例外发生的如此频繁,以至于人们付出了巨大的努力来使用各种特性和约束试图防止它发生, 但时至今日它仍然让很多程序员 ...
- CoreCLR源码探索(五) GC内存收集器的内部实现 调试篇
在上一篇中我分析了CoreCLR中GC的内部处理, 在这一篇我将使用LLDB实际跟踪CoreCLR中GC,关于如何使用LLDB调试CoreCLR的介绍可以看: 微软官方的文档,地址 我在第3篇中的介绍 ...
- CoreCLR源码探索(四) GC内存收集器的内部实现 分析篇
在这篇中我将讲述GC Collector内部的实现, 这是CoreCLR中除了JIT以外最复杂部分,下面一些概念目前尚未有公开的文档和书籍讲到. 为了分析这部分我花了一个多月的时间,期间也多次向Cor ...
- Golang源码探索----GC的实现原理(6)
推荐文章: Golang源码探索----GC的实现原理(1) Golang源码探索----GC的实现原理(2) Golang源码探索----GC的实现原理(3) Golang源码探索----GC的实现 ...
- 一个免费开源、跨平台的可视化源码探索项目
[公众号回复 "1024",免费领取程序员赚钱实操经验] 今天我章鱼猫给大家推荐一个查看源码的神器,超级棒! Sourcetrail,它是一个免费开源.跨平台的可视化源码探索项目. ...
- android 自定义关机界面,android源码探索之定制android关机界面的方法
本文实例讲述了android源码探索之定制android关机界面的方法.分享给大家供大家参考.具体如下: 在Android系统中,长按Power键默认会弹出对话框让你选择"飞行模式" ...
- 一般源码安装添加的GD库 是不支持 jpeg 格式的图片的
一般源码安装添加的GD库 是不支持 jpeg 格式的图片的,只支持如下格式 GD Support enabled GD Version bundled (2.0.34 compatible) GI ...
- Okhttp3 链接池复用机制源码探索
前文 对于http请求我们都知道开始于TCP链接的三次握手然后传输数据然后释放,如下图 而当我们开启连接复用keep-alive后就是指在上一次链接不立马断开链接在超时范围内复用connection在 ...
最新文章
- 计算机php什么意思,什么是PHPC(个人高性能计算机 )
- linux入门 适合初学者_【推荐】适合初学者临摹的国画|国画基础入门教学视频教程!...
- python定位相邻节点_Python selenium 父子、兄弟、相邻节点定位方式详解
- Oracle 11g完全卸载(Windows)
- 最近一周MOSS的link
- C# 开发 OPC Server 系列之二
- 用C实现SEH的例子如何跟进SEH
- miui linux桌面图标,小米主题编辑器(miui主题编辑工具)下载了最新的正式版v5.3.23...
- Hdu-5053 the Sum of Cube(水题)
- 2022.3.21密码学des对称密码与rsa非对称密码【网络攻防CTF】(保姆级图文)
- 摩拜显示服务器忙,摩拜崩了?用户扫了5辆都失败 摩拜称APP出现短时故障
- 【Linux】RHCE -- RHCSA 认证考试 模拟练习题解析
- myeclipse下server视图nullpoint问题
- 国外军事信息网站爬虫源
- P1309 [NOIP2011 普及组] 瑞士轮
- H3C 路由器交换机模拟器
- 如何爬取当当网畅销书排行榜信息? requests + pyquery
- HFSS - 矩形口径喇叭天线的设计与仿真
- 网页制作基础大二dw作业HTML+CSS+JavaScript云南我的家乡旅游景点
- QML中使用 VLC-Qt 播放网络视频流(附实例)