零基础 ABAP 学习教程系列文章的目录
- ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍
- ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别
- ABAP 标准培训教程 BC400 学习笔记之三:ABAP 编程语言的特性和基本构成要素
- ABAP 标准培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型
- ABAP 标准培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号
ABAP 基础知识
- 通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
- ABAP function module 的使用
- ABAP subroutine 的定义和使用
- ABAP 中的变量和常量
- ABAP 编程语言中的系统字段(System Fields)
- 什么是 ABAP Field Symbol
- ABAP 引用类型介绍
- 最浅显易懂的 SAPGUI 里 ABAP 调试器的使用方法介绍
- 如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)
- 如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)
- 用 ABAP 读取本地文本文件内容
- 26 行 ABAP 代码使用 HTTP_GET 函数下载百度网站的首页数据
- ABAP 如何解析 JSON 数据
- 如何从本地文件里拷贝某个 ABAP 类到 SAP 系统
- 面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 方法
- SAP ABAP 报表的用户输入功能
- 使用 ABAP 事物码 SM59 创建 Destination 来读取外网的数据
- 通过一个具体的例子,讲解 SAP BDC 技术的使用步骤
- 从解读 BDC 自动生成的代码谈起,讲解 SAPGUI 的程序组成部分
- 如何查询 SAPGUI 屏幕上某个字段对应的数据库表存储
- 如何使用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后台存储数据库表的名称
- 一步步创建包含自定义 Screen 的 ABAP 程序的详细步骤
- SAP ABAP 字符串变量容易疏忽和混淆的一些知识点
- SAP ABAP 处理 Excel 的标准函数 TEXT_CONVERT_XLS_TO_SAP 介绍
- 授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储
- SAP ABAP 系统进行数据库表查询的几种常用方法
- 如何让 ABAP 服务器能够响应通过浏览器发起的自定义 HTTP 请求
- 一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧
- 如何使用 saplink 安装其他网站上提供的 ABAP 程序
- ABAP 报表中如何给报表的输入参数增添 F4 Value Help
- ABAP 报表中如何以二进制方式上传本地文件
- ABAP 里文件操作涉及到中文字符集的问题和解决方案
- 更多文章正在写作中
Office 专题
ALV 开发专题
- 27 行代码开发一个最简单的 SAP ALV 报表
- 48 行代码给 ABAP ALV 报表的数据行增添颜色效果
- 77 行代码实现ABAP ALV 中的双击事件处理
- SAP ABAP ALV 层次顺序表如何使用双表头(Multiple Headers)进行数据输出
在实际项目中,ABAP 开发人员经常遇到一些需要带有层级结构的数据显示。
以 SAP ABAP 标准培训教程里经典的航班模型为例,世界上有若干航空公司,在 SAP 系统里用两位的字母表示,比如 AA 代表 America Airlines 美国航空,AB 代表 Berlin Airlines 柏林航空等等。每家航空公司经营了若干条航线,这些航线通过4位数字标识,比如 AA0017,代表美国航空旗下的 0017 航线,从纽约飞往旧金山。
因此,航空公司和其经营的航线,可以看成待输出数据的第一级别的层次结构。
每条航线,每周可能有若干班次,比如 AA0017 每周一,周三,周五,都是从纽约飞往旧金山,那么这些航线的具体班次,就构成了待输出数据的第二级别的层次结构。
我们首先在 Excel 里展示这个待显示的具备层次结构的数据格式。
第一行和第二行分别是最后要显示的 ALV 的第一级表头和第二级表头,第三行和第七行(灰色)是第一级别的数据,即航空公司 ID 和这家航空公司所经营的航线 ID.
第4~6,以及第 8~10 行,分别是第二级别的数据,即航线的班次时间信息,以及价格。
最后我用 ABAP 代码,通过 ALV 的方式实现了上图 Excel 绘制的界面效果。这个 ALV 采取了 ABAP 标准的层次顺序表 的 API,即 cl_salv_hierseq_table,来输出具有双表头的 ALV 报表。完整的代码有 330 行,位于本文末尾。
如大家所见,这个 ALV 报表还包含了其他丰富的功能,比如点击图标,使得所有第二级别的数据被折叠起来,从而只显示第一级别的数据,便于统计。同时也展示了如何在 ALV 里显示图标,交通灯,符号等其他类型的元素。这些技巧都将在本教程后续步骤介绍。
下面是 ALV 层次顺序表使用双表头(Multiple Headers)进行数据输出的具体实现步骤。