如何在Oracle中的表格布局中获得对行的控制权

时间:2010-03-24 15:40:01

标签: oracle10g listitem oracleforms

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

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

选项1:使用ENABLED商品属性。<​​/ strong>

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

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

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

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

选项2:使用INSERT_ALLOWEDUPDATE_ALLOWED属性。

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

然而,这不会改变项目在屏幕上的显示方式。要解决此问题,您还可以在项目实例级别设置可视属性(例如,将项目更改为使用深灰色背景等)。

More comments.