我有一个使用了 10 年的小程序,它把自己包裹在 Crystal Reports Viewer 小程序周围,以便处理一些自定义功能。它运行良好,按设计显示和打印报告。Web 应用程序提供数据选择,然后生成 HTML 以通过 AJAX 调用以正确的参数调用小程序。
我有一位用户(到目前为止)遇到以下问题:在生成小程序并查看报告后,她打印了报告。一旦打印对话框出现,即使它被取消,以下事情也不再起作用:
- 应该清除生成的小程序 HTML的关闭链接不再起作用;
- 指向其他页面的导航链接不再起作用:当鼠标悬停在它们上方时它们会适当变暗,但浏览器不会响应点击它们;
- 窗户不能关闭,是否
- 通过单击右上角的X,
- 通过单击系统菜单并选择Close,
- 通过右键单击任务栏中的条目并选择Close,或
- 通过尝试调用文件/退出菜单项(我相信文件菜单被禁用);
- 单击窗口标题栏不再使其显示为活动状态。
为了关闭窗口,必须启动任务管理器并结束 iexplore 进程。
这可能是小程序保持焦点的另一个场合,它不应该:类似的错误,例如
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4838000
被报告为被折叠成一个我在 Java 错误库中找不到的错误:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4918282
也有关于隐形小程序保持焦点的报告:可能是自定义小程序以某种方式调用原始 Crystal Reports 小程序,但我自己没有开发此代码,只是驱动它的包装器。
我不相信我会出现某种对话框出现在 IE 窗口后面的情况。我应该认为这会发生在不止一个系统上,这似乎是该用户独有的,但该系统看起来像我们的库存图像之一。
也有打印锁定 IE 窗口直到打印完成的报告,解决方法是将打印放到另一个线程中。在我的情况下,没有必要实际打印:调用打印对话框然后取消它就足以导致错误行为。
我想了解这里发生了什么,如果可能的话,让这个用户运行起来。我会很感激任何关于类似经历的报告,或者我迄今为止错过的看方向。
一些版本说明:
- 赢 XP 专业版: 5.1.2700 SP 2 构建 2600
- 即: 7.0.5730.13
- Java JRE: 1.6.0_31-b05
- 打印机: Imagistics 2500 USB 打印机(有机会)