本系列前一篇文章 69. 利用 ALV 实现增删改查系列之一:让 ALV 报表进入可编辑状态,我们介绍了如何让 SAP ABAP ALV 报表进入可编辑状态。在该状态下,ALV 报表的每一行,每一列都可以被任意修改,如下图所示:
但是在实际的项目中,更常见的需求是,ALV 报表只允许部分列能够编辑。
本文介绍只将 ALV 报表的部分列设置为可编辑状态的技术实现。
先看一下实现的效果。执行报表,发现 ALV 背景色为灰色,意味着这个报表默认状态为不可编辑。点击工具栏的眼镜笔图标:
此时只有 Airfare 列可以被编辑,其他列仍然处于不可编辑状态。
下面是实现关键点介绍。
- 因为从本例开始,我们实际上将输出内容从逻辑上拆分成两部分,一部分可编辑,另一部分不可编辑。我们需要通过某种数据结构,告诉 ALV 框架如何区分这两部分。这个数据结构就是下图红色区域所示。其中第 11 行 INCLUDE STRUCTURE sflight 即 ALV 输出的业务数据即 sflight 数据库表的内