我的问题是,我的收据打印机有时会停止打印。就像在 60 多次打印之后,它停止然后不再打印,除非我重新启动打印机和程序。
我不太确定这种情况的问题出在哪里,可能是打印机本身或水晶报表加载数据。
到目前为止,我们所做的是添加代码行,以刷新正在加载到 Crystal Report 中的数据。然而这并没有解决问题。
我使用的收据打印机是 EPSON TM-T81
有谁遇到过这样的问题?
您的友好答复将不胜感激。
吉姆
我的问题是,我的收据打印机有时会停止打印。就像在 60 多次打印之后,它停止然后不再打印,除非我重新启动打印机和程序。
我不太确定这种情况的问题出在哪里,可能是打印机本身或水晶报表加载数据。
到目前为止,我们所做的是添加代码行,以刷新正在加载到 Crystal Report 中的数据。然而这并没有解决问题。
我使用的收据打印机是 EPSON TM-T81
有谁遇到过这样的问题?
您的友好答复将不胜感激。
吉姆
抱歉,这么晚了,但这是设计使然。.net 运行时中使用的水晶运行时允许打印的最大数量。你的问题没有说...
解决方法是在每次打印后正确清理所有水晶资源。也就是说,处理报表,然后在加载下一个报表之前将其设置为空。不要打扰注册表修改,因为这些总是会被破坏。
我必须编写一个打印管理器类来有效地进行单线程打印操作以及处理报表资源的清理。结果是我能够打印/导出无限数量的报告。
类似于以下内容:
CrystalReportViewer1.Dispose(); // if using the viewer
CrystalReportViewer1 = null;
report.Close(); // I can't remember if this is part of the reportDocument class
report.Dispose();
report = null;
GC.Collect(); // crazy but true. Monitor the temp folder to see the effect