微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle Apex Interactive Grid 根据条件禁用 ROW

如何解决Oracle Apex Interactive Grid 根据条件禁用 ROW

我有一个名为 TABLE_A 的表,其中包含字段 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 的屏幕截图

enter image description here

enter image description here

一个链接到我的研究: 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

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

enter image description here

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。