0

在 Crystal Reports 中,如果其他开发人员设计了报表,我会看到错误“此报表使用了无效的打印机。将使用默认打印机。”

我注意到当报告出现此错误消息时,以编程方式打开报告需要很长时间。使用无效打印机加载一份报告最多需要 1 1/2 分钟,而当我修复打印机时,加载只需要 5 秒。问题是,我们可以在我们的网络打印机中修复报告,但是我们将我们的软件部署给没有我们打印机设置的客户。他们可能对所有报告都有这些加载时间。

如何以编程方式将打印机设置为默认打印机,以加快报告加载速度?

下面的代码不起作用;至少,加载仍然需要 1 1/2 分钟,无论我是否能够从该打印机名称打印。我正在使用 ReportDocument (CrystalDecisions.CrystalReports.Engine.ReportDocument) 对象进行打印。这是代码片段,以及我尝试设置新打印机的位置。


// 创建 CrystalDecisions.CrystalReports.Engine.ReportDocument 对象
ReportDocument crReportDocument = new ReportDocument();
// 通常设置为 .PortableDocFormat
ExportFormatType selectedOutputType = m_ExportFormat;

System.Drawing.Printing.PrinterSettings 打印机设置 = new System.Drawing.Printing.PrinterSettings();
crReportDocument.PrintOptions.PrinterName = 打印机设置.PrinterName;

// Load() 需要很长时间
// 如果 RPT 文件是用在这台计算机上找不到的打印机保存的。
crReportDocument.Load(m_FileName);
4

2 回答 2

1

尝试在水晶报表中选择“无打印机”选项。

  1. 在 Crystal Designer 中打开报表,转到页面设置。
  2. 勾选“无打印机”。保存报告。
  3. 发布报告。
于 2013-10-11T13:30:17.713 回答
1

这些链接可能会有所帮助。基本上,它的意思是,如果报告是根据特定打印机设计的,它将寻找该打印机,从而导致延迟。

http://social.msdn.microsoft.com/Forums/en-US/vscrystalreports/thread/54f9cb09-41f3-4191-b705-e4f0f38dfb4a

http://kb.sagesoftwareonline.com/cgi-bin/sagesoftwareonline.cfg/php/enduser/std_adp.php?p_faqid=19460&p_created=1158860711&p_topview=1#6

于 2011-02-22T22:39:49.447 回答