在我提出问题之前,我必须说我正在处理的数据库没有外键,因此我无法制作主细节块,因此我正在使用go_block,clear_block,execute_query和触发器的解决方法。
我有一个有两个街区的表格。如果我们假设两个块都填充了info,并且我想在第一个块上执行查询,那么有没有办法在进入查询模式之前清除另一个块?
e.g.
Block1: ID, NAME, SURNAME
Block2: INFO1, INFO2, ..., Id_block1 etc.
因此,如果两个块都有信息,并且我在Block1上进入查询模式,则整个块清除,因此我可以输入搜索条件,但第二个块仍然具有上次执行查询的数据。有没有办法清除第二个块上的数据?再次,当我在Block1上进入ENTER-QUERY MODE时,我想清除Block2中的数据。
Workflow: Enter-query mode Block1, execute-query Block1, NEW-RECORD-INSTANCE trigger activates (where workflow continues), go_block('Block2'), execute_query on Block2 (with where clause Id_block1 = block1.id).
我正在使用Oracle Forms 10g。感谢您提供的任何帮助。
答案 0 :(得分:1)
可以在创建表单中的一个块时创建MASTER-DETAIL关系
或
你可以在KEY-ENTQRY触发器上写下以下内容:
go_block('block2');
clear_block;
go_block('block1');
enter_query;
此后,block1将处于进入查询模式,您可以搜索数据并执行该块。