【问题标题】:Dynamically set the value of "Copy value from item" in Oracle Forms 10g在 Oracle Forms 10g 中动态设置“Copy value from item”的值
【发布时间】:2020-08-25 14:31:48
【问题描述】:

假设我创建了一个 BLOCK2 作为 BLOCK1 的副本。 BLOCK3 是 BLOCK1 的细节块,我也想为 BLOCK2 重用它。 BLOCK3.FOREIGN_KEY 使用“从项目复制值”属性将其值引用到 BLOCK1.PRIMARY_KEY。 如何动态设置“从项目复制值”属性以引用调用块的主键?

我尝试清除 BLOCK3.FOREIGN_KEY 的“从项目复制值”并从调用 BLOCK3 的按钮设置其值,但它不起作用。

【问题讨论】:

    标签: oracle plsql oracle10g oracleforms


    【解决方案1】:

    如果我理解正确的话,你想显示BLOCK3(详细)数据,具体取决于它的主人是BLOCK1还是BLOCK2

    如果是这样,请移除您目前一直在使用的属性。您必须 - 以某种方式 - 让 Forms 知道哪个块是源;一种选择是在BLOCK1BLOCK2 中使用按钮,这会将参数 设置为所需的值。他们的WHEN-BUTTON-PRESSED (WBP) 触发器将是

    :parameter.caller := 'block1';  -- block2 for BLOCK2's WBP trigger    
    go_block('block3');
    execute_query;
    

    然后创建PRE-QUERYBLOCK3块级触发器并设置为

    :block3.foreign_key_item := decode(:parameter.caller, 'block1', :block1.id,
                                                          'block2', :block2.id);
    

    【讨论】:

    • 成功了!我必须将 :parameter.caller 放在控制块中,并在预查询中使用 CASE 而不是解码。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多