当我从另一个窗体调用一个窗口时,它显示两个窗口一个在另一个的顶部
Posted
技术标签:
【中文标题】当我从另一个窗体调用一个窗口时,它显示两个窗口一个在另一个的顶部【英文标题】:When I Call a Window From an Another Form, It Shows Two Windows One on the Top of the Other 【发布时间】:2019-04-30 13:20:44 【问题描述】:我有两个表格:表格A和表格B。画布“主页”属于表格A,上面有两个按钮。当我按下第一个按钮时,我想在 Form B 上调用“Window 1”,如果我按下第二个按钮,我想在 Form B 上调用“Window 2”。
现在,如果我按下第一个按钮,我会看到窗口 1。但如果我按下第二个按钮,我会在窗口 1 的顶部看到窗口 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;
【问题讨论】:
【参考方案1】:可以在form B的when-new-form-instance触发器中放入HIDE_VIEW
命令来隐藏第一个窗口。
【讨论】:
在进入 when-new-form-instance 之前显示 Window 2。虽然我知道这一点,但我尝试了它并没有奏效。我猜这个问题与数据块/画布/窗口属性有关。但我没找到。【参考方案2】:无论如何打开Window 1的原因是Window 1的数据块在所有数据块之上。
据我了解,以这种方式不可能从另一个窗体调用两个单独的窗口。我在 Form B 上创建了一个主窗口并在其上移动了按钮。我从表格 A 中调用了这个主窗口。它起作用了。
【讨论】:
以上是关于当我从另一个窗体调用一个窗口时,它显示两个窗口一个在另一个的顶部的主要内容,如果未能解决你的问题,请参考以下文章