2013-03-04 84 views
0

我在我的应用程序中使用水晶报告是基于C#的窗口打印销售发票和账单,但问题是,它需要一些时间长,我需要一些实时并为此快速的方法,请建议一些解决方案。 我从数据库链接我的水晶报告,是打印发票而不是水晶报告的任何替代方案...更好的选项打印发票不使用水晶报告

+0

你确定CR很慢吗?你怎么知道这不是你准备为报告准备数据的代码(例如慢速查询)? “缓慢”是什么意思?这需要多久?你想要多久? – 2013-03-04 10:32:23

+0

速度慢在某些时候它没有反应快,是做这项工作的其他重量轻的选择 – 2013-03-04 10:37:13

+1

是的,我知道'慢'是相同的'不快'。它背后的数字是什么?你怎么知道它足够快?你需要用数字来表达,而不是模糊的感觉。 – 2013-03-04 10:40:43

回答

2

如果你花时间学习什么让她开心,水晶是“快”。根据我的经验,实际打印可以占据大部分处理时间。创建.rpt文件只需要25ms,然后5000ms与打印机服务器协商。我花了数周时间与Crystal服务器端打印摔跤。

它使一个很大的区别:

  • 如何要打印:ReportDoc.PrintToPrinterPrintOutputController.PrintReport

  • 无论是选择打印机使用相同的驱动程序,你用于开发报表的打印机。

  • 打印机是否安装在服务器上(或仅安装在远程打印机服务器上)以及是否安装在IIS_Identity的配置文件中。

如果配置不正确,打印报告可能需要1 - 2分钟(基于第一手经验)。做一些调整,你突然< 50ms。

例如,如果您使用的是PrintToPrinter(),并且指定的打印机不在IIS用户的.NET安装打印机列表中,则需要很长时间才能打印。安装打印机使其可供IIS用户使用,并且即时打印。

+0

请介意说明您所谈论的ReportDoc.PrintToPrinter和PrintOutputController.PrintReport有何不同?你最后一个pref解释它对我来说不是那么清楚我如何知道.NET列表中列出的打印机? – samer 2016-04-22 10:07:00

1

我在一个winforms项目中遇到了一个问题,报告需要很长时间才能加载,但这只是第一次。稍后报告运行时,他们根本没有问题。

我们假设时间是由框架将晶体组件加载到内存中。

所以我创建了一个破解每当运行应用程序,我在后台线程中加载一个空的报告。

+0

至少对于较旧的CR版本,第一次加载[默认]打印机驱动程序[在长时间超时后,例如在早上]有时也需要很多时间。您的解决方案 - 在内部加载空白报告 - 也可以解决这个问题。 – Arvo 2015-12-15 14:32:49