“报表中包含嵌套错误”怎么解决

在一个程序中,点击一个菜单后弹出一个报表,没有关这个报表窗口,然后再点击该菜单,弹出“报表中包含嵌套错误”,怎么解决,谢谢
---------------------------------------------------------------

你一个工作区内打开了两次报表,应该关闭后,再打开。
---------------------------------------------------------------
要不这样,你不要直接通过菜单打印报表,而是点击菜单时执行一个表单,在这个表单上建一个打印按钮,然后由这个打印按钮来打印。

但是这个表单的ShowWindows要设为1(即在顶层表单中),WindowType要设为1
---------------------------------------------------------------
重作了一下测试,Report Form 报表 preview语句打开的预览窗口肯定是模式的,但对于在顶层表单中的菜单无效,如果菜单在系统菜单中便有效。

解决办法:
1、设置一全局变量glModal,初始值为.F.
2、建一全局过程MyReport,过程代码为:
Procedure MyReport
Parameter cReportCommand
glModal = .T.
&cReportCommand
glModal = .F.
EndProc

3、将菜单中调用命令Report Form 报表 preview改为通过上面的过程调用:
MyReport "Report Form 报表 preview"

4、修改菜单.mpr文件,将类似于
DEFINE BAR 1 OF 打印 PROMPT "...预览XXX表"
的语句都在后面添加skip选项,变为
DEFINE BAR 1 OF 打印 PROMPT "...预览XXX表" Skip For glModal

5、ok

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus