1

这可能很简单,但我是 Oracle 的新手。我正在使用 Oracle 10g 并有一个表格,其中列出了表格布局中链接表中的信息。最后一列数据是“列表项”项类型,其元素列表为启用 (T) 和禁用 (F)。

我需要的是当用户将此下拉列表更改为禁用时,我只希望该行禁用某些列而不是整个列。

这也假设在加载表单时,它将根据从数据库中的 EnabledDisabled 列中提取的值来禁用和启用数据行。

谢谢您的帮助!

4

1 回答 1

0

选项 1:使用ENABLEDitem 属性。

不幸的是,Oracle Forms 不允许ENABLED在项目实例级别更改项目的属性。

但是,您可以做的是在用户输入记录时启用或禁用整个项目 - 使用WHEN-NEW-RECORD-INSTANCE触发器 - 根据列表项的当前记录值的值,触发器会将ENABLED属性设置为PROPERTY_TRUEPROPERTY_FALSE

当然,您的列表项在其WHEN-LIST-CHANGED触发器中也将具有相同的代码。

这种方法的缺点是整个列将“看起来”对用户禁用,并且他们将无法使用这些禁用的项目选择不同的记录。

选项 2:使用INSERT_ALLOWEDandUPDATE_ALLOWED属性。

您可以使用在项目实例级别设置这些属性SET_ITEM_INSTANCE_PROPERTY。您可以在块的POST-QUERY触发器以及列表项的WHEN-LIST-CHANGED触发器中设置它们。

但是,这不会改变项目在屏幕上的外观。为了解决这个问题,您还可以在项目实例级别设置视觉属性(例如,将项目更改为使用深灰色背景或其他东西)。

更多评论。

于 2010-03-25T00:38:20.437 回答