zl程序教程

您现在的位置是:首页 >  Java

当前栏目

利用 ALV 实现增删改查系列之一:让 ALV 报表进入可编辑状态试读版

2023-02-18 16:30:42 时间

在 CSDN 和我的知识星球里有朋友向我提出同样的问题,询问如何在 ALV 里实现增删改查操作。

虽然需求只有一句话,但是这个需求背后涉及到的知识点不少,因此笔者会通过几篇文章的篇幅,来介绍这个需求的详细实现步骤。

本文先解决第一个障碍,如何让 ALV 报表进入可编辑状态?

笔者通过一个 ABAP 报表来说明。

ALV Grid 控件里每个单元格的状态有两种:

  1. non-editable 状态,不可编辑
  2. editable 可编辑状态

其中 editable 状态又分为两种:

(1) editable 并且活跃(active),此时单元格已经可以输入新的值 (2) editable 但是不活跃(not active),此时单元格无法进行编辑

这两种 editable 的不同状态,可以通过 ALV Grid 的 API 来切换。

我们还是先来看看通过本文介绍的实现步骤之后,能达到什么样的效果。

我们执行 ABAP 报表(完整的源代码在文末获得),看到如下的 ALV 报表。

首先,这个报表单元格的背景色是白色,这意味着单元格可以编辑。并且工具栏上我们也看到了新建,插入,删除和复制这四个按钮。

我随便在单元格里胡乱维护了一些值,然后通过新建按钮,创建了一些空白行。当然,目前还没有实现保存功能。

显然,ALV 报表的这个状态,就是我们刚刚介绍过的 editable 并且活跃(active)状态。

点击上图右下角按钮,可以切换成 editable 但是不活跃状态。这个按钮包含了一幅眼镜和一只笔的图案,眼镜代表只读方式查看,笔代表修改。

点击之后,ALV 报表单元格的背景色变灰,同时工具栏上那四个提供编辑功能的按钮也消失了。此时这个 ALV 报表的单元格,暂时不支持修改,除非我们再次点击眼镜和笔的按钮。

详细步骤参考这里