在 Oracle Forms 10g 中动态设置“Copy value from item”的值
Posted
技术标签:
【中文标题】在 Oracle Forms 10g 中动态设置“Copy value from item”的值【英文标题】:Dynamically set the value of "Copy value from item" in Oracle Forms 10g 【发布时间】:2020-08-25 14:31:48 【问题描述】:假设我创建了一个 BLOCK2 作为 BLOCK1 的副本。 BLOCK3 是 BLOCK1 的细节块,我也想为 BLOCK2 重用它。 BLOCK3.FOREIGN_KEY 使用“从项目复制值”属性将其值引用到 BLOCK1.PRIMARY_KEY。 如何动态设置“从项目复制值”属性以引用调用块的主键?
我尝试清除 BLOCK3.FOREIGN_KEY 的“从项目复制值”并从调用 BLOCK3 的按钮设置其值,但它不起作用。
【问题讨论】:
【参考方案1】:如果我理解正确的话,你想显示BLOCK3
(详细)数据,具体取决于它的主人是BLOCK1
还是BLOCK2
。
如果是这样,请移除您目前一直在使用的属性。您必须 - 以某种方式 - 让 Forms 知道哪个块是源;一种选择是在BLOCK1
和BLOCK2
中使用按钮,这会将参数 设置为所需的值。他们的WHEN-BUTTON-PRESSED
(WBP) 触发器将是
:parameter.caller := 'block1'; -- block2 for BLOCK2's WBP trigger
go_block('block3');
execute_query;
然后创建PRE-QUERY
BLOCK3
块级触发器并设置为
:block3.foreign_key_item := decode(:parameter.caller, 'block1', :block1.id,
'block2', :block2.id);
【讨论】:
成功了!我必须将 :parameter.caller 放在控制块中,并在预查询中使用 CASE 而不是解码。非常感谢!以上是关于在 Oracle Forms 10g 中动态设置“Copy value from item”的值的主要内容,如果未能解决你的问题,请参考以下文章
在 Oracle Forms 10g 中使用 LOV 值过滤数据块
Oracle Forms 10g Tutorial Ebook Download - Oracle Forms Blog