我在基于 C# 窗口的应用程序中使用水晶报表来打印销售发票和账单,但问题是需要很长时间才能进行,为此我需要一些实时和快速的方法,请提出一些解决方案。我通过数据库中的程序链接我的水晶报告,是打印发票而不是水晶报告的任何替代方法......
2 回答
如果您花时间了解让她开心的原因,Crystal 会“很快”。根据我的经验,实际打印可以占大部分处理时间。创建 .rpt 文件可能只需要 25 毫秒,但与打印机服务器协商则需要 5000 毫秒。我花了数周时间研究 Crystal 服务器端打印。
它有很大的不同:
你是如何打印的:
ReportDoc.PrintToPrinter
vs。PrintOutputController.PrintReport
所选打印机是否使用与您用于开发报告的打印机相同的驱动程序。
打印机是否安装在服务器上(或仅安装在远程打印机服务器上)以及是否安装在 IIS_Identity 的配置文件中。
如果配置不正确,打印报告可能需要 1 - 2 分钟(基于第一手经验)。做一些调整,你会突然小于 50 毫秒。
例如,如果您正在使用PrintToPrinter()
并且指定的打印机不在 IIS 用户的 .NET 安装打印机列表中,则打印需要很长时间。安装打印机,以便 IIS 用户可以使用它,并且 bam,打印是即时的。
我在一个 winforms 项目中遇到了一个问题,报告需要很长时间才能加载,但这只是第一次。后来当报告运行时,他们根本没有问题。
我们假设框架花费时间将晶体组件加载到内存中。
所以我创建了一个 hack,每当应用程序运行时,我都会在后台线程中加载一个空报告。