Oracle Forms - 根据查询数据启用/禁用表格列表项行

Oracle Forms - Enable / disable tabular list item rows based on the query data

我在数据块 ('DB') 中有一个文本项 ('TXT_EG_PER') 和一个列表项 ('LI_P'),如图所示。 我想根据行数据单独制作列表项 enable/disable。

我使用了 'TXT_EG_PER's WHEN-VALIDATE-ITEM 触发器。我的代码在里面:

IF smt..    THEN
    SET_ITEM_PROPERTY  ('DB.LI_P',
                     ENABLED,
                     property_true);
ELSE
    SET_ITEM_PROPERTY  ('DB.LI_P',
                     ENABLED,
                     property_false);
END IF;

但它会启用或禁用所有列表项。我想按行进行。

改用SET_ITEM_INSTANCE_PROPERTY。它的用法在 Forms 联机帮助系统中进行了描述。看一看,因为它没有与 SET_ITEM_PROPERTY built-in 相同的参数,例如

set_item_instance_property(item, record, property value);

在你的情况下,可能

SET_ITEM_INSTANCE_PROPERTY  ('DB.LI_P',
                             :system.trigger_record,
                             ENABLED,
                             property_true);