当我从另一个表单调用 Window 时,它显示两个 Windows 一个在另一个之上

When I Call a Window From an Another Form, It Shows Two Windows One on the Top of the Other

我有两个表格:表格A和表格B。Canvas "Home"属于表格A,上面有两个按钮。当我按下第一个按钮时,我想在表格 B 上调用 "Window 1",如果我按下第二个按钮,我想在表格 B 上调用 "Window 2"。

现在,如果我按下第一个按钮,我会看到 Window 1。但是如果我按下第二个按钮,我会在 Window 1 的顶部看到 Window 2。为什么?

这是第二个按钮的 'WHEN-PUSH-BUTTON' 触发器。 (第一个按钮的 'WHEN-PUSH-BUTTON' 触发器相同):

DECLARE
   user_form       VARCHAR2 (100);
   param_list_id   paramlist;
BEGIN     

   :parameter.PRMTR := '2';  

   param_list_id := CREATE_PARAMETER_LIST ('param_data');

   ADD_PARAMETER (param_list_id,
              'PRMTR',
              text_parameter,
              TO_CHAR ( :parameter.PRMTR));


   user_form := '/home/oracle/program/formb.fmx';


   CALL_FORM (user_form,
          hide,
          do_replace,
          no_query_only,
          param_list_id);          

   DESTROY_PARAMETER_LIST ('param_data');

END;

这是表格 B 的 'WHEN-NEW-FORM-INSTANCE' 触发器:

IF :parameter.PRMTR = '2' THEN          


    GO_BLOCK('DATABLOCK_TWO');


ELSIF :parameter.PRMTR = '1' THEN

    GO_BLOCK('DATABLOCK_ONE');


END IF;

您可以在表单 B 的 when-new-form-instance 触发器中放入一个 HIDE_VIEW 命令来隐藏第一个 window.

打开Window1的原因无论如何都是Window1的数据块在所有数据块之上。

据我所知,以这种方式从另一种形式调用两个单独的 window 是不可能的。我在 Form B 上创建了一个主页 window 并在其上移动了按钮。我从 Form A 给这个家打电话 window。它成功了。