到目前为止,我们有两个表单,需要使用按钮从from1(即登录屏幕)中的window1切换到formX中的windowX(触发代码如下):
begin
show_window('windowX');
go_block('some_block_in_formX');
end;
这给出了错误 FRM-41052:找不到窗口:无效 ID
所以问题是,我应该以某种方式将 formX 添加到 show_window 参数中还是有其他方法?谢谢你。
请注意,表格位于不同的文件中。
到目前为止,我们有两个表单,需要使用按钮从from1(即登录屏幕)中的window1切换到formX中的windowX(触发代码如下):
begin
show_window('windowX');
go_block('some_block_in_formX');
end;
这给出了错误 FRM-41052:找不到窗口:无效 ID
所以问题是,我应该以某种方式将 formX 添加到 show_window 参数中还是有其他方法?谢谢你。
请注意,表格位于不同的文件中。
表格在不同的文件中。
如果表单是不同的文件,您需要使用open form/call form/newform调用另一个表单- 任何适合您的需要。
show_window/go_block
仅当您移动到相同形式的不同窗口/块时才能使用序列 - 以及错误消息
错误 FRM-41052:找不到窗口:ID 无效
抱怨它不能去那个窗口,因为它的形式不同。
每个表单有效地为它的所有窗口、块、项目等提供了一个私有命名空间——并且您的代码始终在单个表单的上下文中运行。
要解决这个问题,您需要一个表单参数,以及其他形式的一些代码,例如:
WHEN-NEW-FORM-INSTANCE
触发器中检查 if :PARAMETER.ACTION = 'XYZ'
,如果是,请执行 show_window 和 go_block。将相同的代码复制到您的WHEN-WINDOW-ACTIVATED
触发器。当然,您需要考虑参数的名称(例如 ACTION)和值('XYZ'),这对于将来维护您的表单的人来说是有意义的。