这可能很简单,但我是Oracle新手。我正在使用Oracle 10g并且有一个表单,该表单在表格布局中列出链接表中的信息。最后一列数据是“list Item”项目类型,其元素列表为Enabled(T)和Disabled(F)。
我需要的是当用户将此下拉列表更改为禁用时,我只希望该行禁用某些列,而不是整列。
这也假设在加载表单时,它将禁用和启用数据行,具体取决于从数据库中的EnabledDisabled列中提取的值。
感谢您的帮助!
答案 0 :(得分:0)
选项1:使用ENABLED
商品属性。</ strong>
不幸的是,Oracle Forms不允许在项目实例级别更改项目的ENABLED
属性。
但是,您可以执行的操作是在用户输入记录时启用或禁用整个项目 - 使用WHEN-NEW-RECORD-INSTANCE
触发器 - 取决于列表项的当前记录值的值,触发器将将ENABLED
属性设置为PROPERTY_TRUE
或PROPERTY_FALSE
。
当然,您的列表项在WHEN-LIST-CHANGED
触发器中也会有相同的代码。
这种方法的缺点是整个列将“看起来”禁用给用户,并且他们将无法使用这些禁用的项目选择不同的记录。
选项2:使用INSERT_ALLOWED
和UPDATE_ALLOWED
属性。
您可以使用SET_ITEM_INSTANCE_PROPERTY
在项目实例级别设置这些属性。您可以在块的POST-QUERY
触发器以及列表项的WHEN-LIST-CHANGED
触发器中设置它们。
然而,这不会改变项目在屏幕上的显示方式。要解决此问题,您还可以在项目实例级别设置可视属性(例如,将项目更改为使用深灰色背景等)。