在另一个块中进入查询模式之前清除一个块

时间:2014-11-13 08:47:48

标签: oracle plsql oracle10g oracleforms

在我提出问题之前,我必须说我正在处理的数据库没有外键,因此我无法制作主细节块,因此我正在使用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。感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

可以在创建表单中的一个块时创建MASTER-DETAIL关系 或
你可以在KEY-ENTQRY触发器上写下以下内容:

go_block('block2');
clear_block;
go_block('block1');
enter_query;

此后,block1将处于进入查询模式,您可以搜索数据并执行该块。