0

我有一个名为TABLE_Afields的表ID, FIRST_NAME, LAST_NAME, AGE, STATUS

从这个表中,我在 ORACLE APEX 20.2 中有一个交互式网格,我希望当状态被批准时,网格中该记录的整行被禁用(不可编辑)。我已经做过研究,但他们说话并描述了列禁用。我不想根据条件禁用列,我想禁用一行。

在 oracle apex 中,我使用了交互式网格上的只读功能。使用只读功能,我对返回的行进行了 sql 查询,如下所示,但是当我使用它时,它会使整个网格不可编辑:

返回行时的 SQL 查询

select 1 from TABLE_A where upper(STATUS) = 'APPROVED';

Oracle Apex 的屏幕截图

在此处输入图像描述

在此处输入图像描述

我研究的一个链接: https ://community.oracle.com/tech/developers/discussion/4482243/oracle-apex-lock-disable-specific-columns-in-interactive-grid

您的帮助将不胜感激!

4

1 回答 1

2

我不知道status你有多少不同的。但我假设此列中只有两个值:ApprovedNot Approved

然后你可以试试这个查询:

select a.* , decode(UPPER(a.status),'NOT APPROVED','U' ,'X') as EDITABLE  from TABLE_A a

那么你应该Alowed row operation column在 Apex 中使用。

创建列后,单击交互式网格的 Attributes 节点并为 Allowed Row Operations Column 属性指定 EDITABLE 列。

在此处输入图像描述

该工具允许根据不同的值更改数据:

  • U - 允许行更新
  • D – 允许行删除
  • UD – 允许更新和删除
  • 如果返回任何其他内容,则该行将不可编辑。
于 2021-07-29T13:04:19.650 回答