【问题标题】:How do I gain Control of a row in Tabular Layout in Oracle如何在 Oracle 的表格布局中控制一行
【发布时间】:2010-03-25 08:38:20
【问题描述】:

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

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

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

感谢您的帮助!

【问题讨论】:

    标签: oracle10g listitem oracleforms


    【解决方案1】:

    选项 1:使用 ENABLED 项目属性。

    很遗憾,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.

    【讨论】:

    • 嗯,那很臭。好的,我想我只会在表单上为用户清楚地描述功能。再次感谢 Jeff 为我节省了不转动轮子的时间。
    • 不直截了当,不幸的是:) - 但我已经多次使用选项 2,效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多