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