如何加载相同的 Crystal 报告两次?
How do I load the same Crystal Report twice?
出于某种原因,我无法在一个程序会话中加载此报告两次。我可以毫无问题地第一次打印它。第二次报错:
CrystalDecisions.Shared.CrystalReportsException: Load report failed.
这是我的代码。
Private Sub Print_Report()
Using CrystalReport As New ReportDocument
CrystalReport.Load("Reports\PrintMe.rpt")
CrystalReport.SetParameterValue("Code", txtCode.Text)
CrystalReport.SetParameterValue("Control", txtControl.Text)
CrystalReport.PrintOptions.PrinterName = DefaultPrinterName()
CrystalReport.PrintToPrinter(1, True, 0, 0)
End Using
End Sub
Private Function DefaultPrinterName() As String
Dim psDefault As New System.Drawing.Printing.PrinterSettings
Try
DefaultPrinterName = psDefault.PrinterName
Catch ex As System.Exception
DefaultPrinterName = ""
Finally
psDefault = Nothing
End Try
End Function
我能想到的是文件在第一次打印结束时没有被释放。我是不是看得太简单了?
问题是由使用 Foxit Reader 的 PDF 打印机引起的。我改用 Adobe Acrobat,现在问题消失了。我只使用 PDF 打印机进行打印机测试以节省纸张。对于任何与 PDF 相关的内容,我都将使用“导出到磁盘”。
出于某种原因,我无法在一个程序会话中加载此报告两次。我可以毫无问题地第一次打印它。第二次报错:
CrystalDecisions.Shared.CrystalReportsException: Load report failed.
这是我的代码。
Private Sub Print_Report()
Using CrystalReport As New ReportDocument
CrystalReport.Load("Reports\PrintMe.rpt")
CrystalReport.SetParameterValue("Code", txtCode.Text)
CrystalReport.SetParameterValue("Control", txtControl.Text)
CrystalReport.PrintOptions.PrinterName = DefaultPrinterName()
CrystalReport.PrintToPrinter(1, True, 0, 0)
End Using
End Sub
Private Function DefaultPrinterName() As String
Dim psDefault As New System.Drawing.Printing.PrinterSettings
Try
DefaultPrinterName = psDefault.PrinterName
Catch ex As System.Exception
DefaultPrinterName = ""
Finally
psDefault = Nothing
End Try
End Function
我能想到的是文件在第一次打印结束时没有被释放。我是不是看得太简单了?
问题是由使用 Foxit Reader 的 PDF 打印机引起的。我改用 Adobe Acrobat,现在问题消失了。我只使用 PDF 打印机进行打印机测试以节省纸张。对于任何与 PDF 相关的内容,我都将使用“导出到磁盘”。