1

到目前为止,我们有两个表单,需要使用按钮从from1(即登录屏幕)中的window1切换到formX中的windowX(触发代码如下):

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

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

所以问题是,我应该以某种方式将 formX 添加到 show_window 参数中还是有其他方法?谢谢你。

请注意,表格位于不同的文件中。

4

2 回答 2

1

表格在不同的文件中。

如果表单是不同的文件,您需要使用open form/call form/newform调用另一个表单- 任何适合您的需要。

show_window/go_block仅当您移动到相同形式的不同窗口/块时才能使用序列 - 以及错误消息

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

抱怨它不能去那个窗口,因为它的形式不同

于 2012-04-21T05:37:21.550 回答
0

每个表单有效地为它的所有窗口、块、项目等提供了一个私有命名空间——并且您的代码始终在单个表单的上下文中运行。

要解决这个问题,您需要一个表单参数,以及其他形式的一些代码,例如:

  1. 在formX中,添加一个参数ACTION
  2. 在 form1 中,将值 'XYZ' 传递给 ACTION
  3. 在 formX 中,在WHEN-NEW-FORM-INSTANCE触发器中检查 if :PARAMETER.ACTION = 'XYZ',如果是,请执行 show_window 和 go_block。将相同的代码复制到您的WHEN-WINDOW-ACTIVATED触发器。

当然,您需要考虑参数的名称(例如 ACTION)和值('XYZ'),这对于将来维护您的表单的人来说是有意义的。

于 2012-04-23T05:33:13.457 回答