SAP|SAP ABAP ALV 层次顺序表如何使用双表头(Multiple Headers)进行数据输出试读版
零基础 ABAP 学习教程系列文章的目录
- ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍
- ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别
- ABAP 标准培训教程 BC400 学习笔记之三:ABAP 编程语言的特性和基本构成要素
- ABAP 标准培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型
- ABAP 标准培训教程 BC400 学习笔记之五: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 里文件操作涉及到中文字符集的问题和解决方案
- 更多文章正在写作中
- 用 ABAP 新建本地 Excel 文件并写入数据
- 如何使用 ABAP 创建包含不同字体大小的 Word 文档
- 更多文章正在写作中
- 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 里显示图标,交通灯,符号等其他类型的元素。这些技巧都将在本教程后续步骤介绍。
文章图片
【SAP|SAP ABAP ALV 层次顺序表如何使用双表头(Multiple Headers)进行数据输出试读版】下面是 ALV 层次顺序表使用双表头(Multiple Headers)进行数据输出的具体实现步骤。
推荐阅读
- 如何通过|如何通过 SAP ABAP OData $expand 操作在同一个 HTTP 请求中返回多个节点的数据试读版
- 关于|关于 SAP 电商云 Spartacus UI 里 Router 模块的 forRoot 方法
- 如何修改|如何修改 SAP ABAP OData 模型,使其支持 $expand 操作试读版
- SAP|SAP ABAP OData 服务里 EntityType 和 EntitySet 的区别试读版
- SAP|SAP 电商云 Spartacus UI 里的 ASM 模块启用的前置条件
- SAP|SAP 电商云 Assisted Service Module (ASM) 功能模块讲解
- 如何在|如何在 SAP Spartacus 中编写 ASM-Compatible 的代码
- 跟着销售学python5-微信平台基础知识virtualvenv(3)
- 方法(一键批量把联系人号码添加导入WhatsApp通讯录)
- IntelliJ|IntelliJ IDEA 自动生成序列化serialVersionUID设置