有朋友在我的知识星球上向我提问,询问 SAP ABAP ALV List 和 ALV Grid,这两种显示控件,在使用场合和方法上,有什么区别。
其实在 SAP 官方社区上,也有 ABAP 从业者问过类似的问题。本文就来简单聊聊二者的区别。
在 SAP ABAP 开发环境中,ALV(Application List Viewer)是一个强大的工具,用于展示列表格式的数据。它提供了排序、过滤、总结等多种功能,极大地方便了用户的数据查看和处理。ALV 主要有两种形式:ALV List 和 ALV Grid。虽然它们都是用于数据展示,但它们在使用场合、用户界面和功能上存在着一些差异。
本文下面罗列了一些 ALV List 和 ALV Grid 的区别。
用户界面
- ALV List 提供了一个较为传统的列表视图,它更适用于那些需要打印输出或需要一个简单清单显示的场景。它的界面比较简洁,功能相对有限,主要用于显示
不需要复杂交互的数据
。 - ALV Grid 则提供了一个更为现代化和交互性更强的表格视图。它支持单元格编辑、拖放列、复杂的布局设置等高级功能,更适合需要与用户进行较多交互的应用场景。
比如本教程花了很多文章的篇幅,来介绍 ALV Grid 里单元格的编辑功能:
- 69. 利用 ALV 实现增删改查系列之一:让 ALV 报表进入可编辑状态
- 70. 利用 ALV 实现增删改查系列之二:仅让 ALV 报表某一列允许被编辑
- 72. 利用 ALV 实现增删改查系列之三:如何给 SAP ABAP ALV 报表的修改功能添加自定义校验逻辑
- 117. 利用 ALV 实现增删改查系列之四:如何给 SAP ABAP ALV 报表行项目删除时增加弹出提示
功能性
- ALV List 在功能上相对简单,主要支持基本的数据展示、排序和简单的过滤。它的优势在于易于实现和使用,以及较好的打印输出支持。
- ALV Grid 功能则更加强大,除了支持 ALV List 的所有基本功能外,还支持更复杂的数据处理,如单元格级别的编辑、复选框、下拉列表等交互元素,以及更丰富的数据排序和过滤选项。
我们来看看 SAP ABAP 里使用频率非常高的 SE16 事务码。
我们选择 Settings->User Parameters
:
然后可以在 ALV Grid
和 ALV List
里切换。
下面是 ALV List 的显示界面:
下面是 ALV Grid 的显示界面:
笔者本教程里的 ALV 例子,都是基于实现更复杂的 ALV Grid
. 如果大家想把这些例子切换成使用 ALV List
显示想看看效果,只需要简单的替换 ALV 显示函数即可。
我来举个例子。
本教程这篇文章,介绍了 ALV 分组和显示小计(Subtotal)的实现方法:
ALV Grid 显示效果如下:
将函数 REUSE_ALV_GRID_DISPLAY
替换成 REUSE_ALV_LIST_DISPLAY
,即可改为通过 LIST 方式输出:
ALV List 的输出效果,大家可以和 ALV Grid 做比较:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。