问题描述
说我创建了一个BLOCK2作为BLOCK1的副本。 BLOCK3是BLOCK1的详细信息块,我也想将其重用于BLOCK2。 BLOCK3.FOREIGN_KEY使用“从项目复制值”属性将其值引用到BLOCK1.PRIMARY_KEY。 如何动态设置“从项目中复制值”属性以引用调用块的主键?
我尝试清除BLOCK3.FOREIGN_KEY的“从项目复制值”,并从调用BLOCK3的按钮中设置其值,但它不起作用。解决方法
如果我对您的理解正确,则要显示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);