深入源码探索:SAP 标准报表怎样实现不同「报表格式/清单类型」的输出?
简介: 我们知道 SAP 有 3 种常见的报表格式,分别是网格控制(Grid control)、标准清单(Normal list)、多层清单(Hierarchical list)。在很多 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)
"技术上对应的实现函数(其中一个) call function 'REUSE_ALV_GRID_DISPLAY'
2.2 标准清单(Normal list)
"技术上对应的实现函数(其中一个) call function 'REUSE_ALV_LIST_DISPLAY'
2.3 多层清单(Hierarchical list)
"技术上对应的实现函数(其中一个) 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 控制机制-初始化和更新
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群和其他发布平台
长期提供开发和运维服务。
- 关于提供开发和运维服务的详情