利用 ALV 实现增删改查系列之四:如何捕捉 SAP ABAP ALV 报表行项目删除时抛出的事件试读版

发布时间 2023-11-19 11:26:36作者: JerryWang_汪子熙

这个教程 ALV 系列的前三篇文章如下:

笔者的知识星球有朋友提问:

我想请教一下 如何在 cl_gui_alv_grid 的标准删除按钮 (&LOCAL&DELETE_ROW)上做增强呢? 比如我想点删除行的时候让它报个提示

本文就来解答这个问题,我们使用的源代码在下面这篇文章的基础上做修改:

我们可以打开第 69 篇文章创建的 ABAP 报表 ZDEMO_EDIT_ALV1, 然后右键,选择菜单的 Copy 项,拷贝一个新的 ABAP 报表出来。但是注意这个 Copy 菜单只能帮助我们拷贝 ABAP 程序的源代码,对于 Screen 和 GUI Status 这些无法自动拷贝,我们只能在新的 ABAP 程序里,手动重建 Screen 和 GUI Status.

拷贝好 ABAP 报表之后,执行,我们应该会看到下面的界面。目前点击 ALV 报表自带的删除按钮(Delete Row)之后:如果当前 ALV 没有选中任意一行,则默认第一行数据会被删除;如果存在被选中行,则被选中行被删除。

目前的删除行为,点击上图的 Delete Row 按钮后,行项目会立即被删除。如何实现笔者知识星球里那位朋友提出的增加删除提示的需求呢?

我在网络上搜索了一下,发现针对这个捕捉 ALV 报表标准工具栏删除按钮的点击事件需求,存在很多技术文章,但都写得似是而非,所以专门写一篇文章。

下面是正文

最后的效果如下:

本步骤使用到的完整源代码在此处