Oracle Apex Interactive Grid 根据条件禁用 ROW

Oracle Apex Interactive Grid Disable a ROW based on a condition

我有一个名为 TABLE_A 的 table,字段为 ID, FIRST_NAME, LAST_NAME, AGE, STATUS

从这个 table 我在 ORACLE APEX 20.2 中有一个交互式网格,我希望当状态被批准时,网格中该记录的整行被禁用(不是 editable ).我做过研究,但他们谈到并描述了 COLUMN DISABLING。我不想根据条件禁用列,我想禁用行。

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

SQL 返回行时查询

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

来自 Oracle Apex 的屏幕截图

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

非常感谢您的帮助!

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

那你可以试试这个查询:

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

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

创建列后,单击交互式网格的属性节点,并为允许的行操作列指定可编辑列属性。

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

  • U – 允许行更新
  • D – 允许删除行
  • UD – 允许更新和删除
  • 如果返回任何其他内容,则该行将不可编辑。