这个教程 ALV 系列的前三篇文章如下:
- 69. 利用 ALV 实现增删改查系列之一:让 ALV 报表进入可编辑状态
- 70. 利用 ALV 实现增删改查系列之二:仅让 ALV 报表某一列允许被编辑
- 72. 利用 ALV 实现增删改查系列之三:如何给 SAP ABAP 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 报表标准工具栏删除按钮的点击事件需求,存在很多技术文章,但都写得似是而非,所以专门写一篇文章。
下面是正文。
最后的效果如下:
本步骤使用到的完整源代码在此处。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。