2012-04-20 52 views
1

我们有两种形式,到目前为止,需要从窗口1中1跳转(其被登录屏幕)使用按钮(如下触发代码)切换到windowX在formX:的Oracle Forms生成器 - 改变窗口的另一种形式

begin 
    show_window('windowX'); 
    go_block('some_block_in_formX'); 
end; 

这给了错误FRM-41052:找不到窗口:无效的ID

所以问题是,我应该补充formX到show_window参数某种方式或有另一种方法呢?谢谢。

请注意,表单是在不同的文件。

回答

1

表单在不同的文件中。

如果表格是不同的文件,您需要使用open form/call form/newform来调用其他表格 - 无论您的需要如何。

show_window/go_block当你移动到不同的窗口序列可仅使用/的相同形成 - 与错误信息

错误FRM-41052:找不到窗口:无效的ID

正在抱怨它无法进入该窗口,因为它处于不同的窗体中。

0

每个窗体都有一个私有的命名空间,它的所有窗口,块,项等等 - 而且你的代码总是在单一窗体的上下文中运行。

为了解决这个问题,你需要一个形式参数,再加上其他形式的一些代码,例如:

    在formX
  1. ,添加参数ACTION在Form1
  2. ,传递价值“XYZ '在行动
  3. 在formX,在WHEN-NEW-FORM-INSTANCE触发器,检查是否:PARAMETER.ACTION = 'XYZ',如果是的话,做你的show_window和go_block。将相同的代码复制到您的WHEN-WINDOW-ACTIVATED触发器。

当然,你需要考虑的参数(例如ACTION)和价值(“XYZ”),这将是有意义的人保持您在未来的形式的名称。