Когда мы запускали отчеты в .NET 3.5, проблем не было. Когда мы перешли на .NET 4.5 и обновили Crystal до следующих версий:
- http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0_5.exe
- http://downloads.businessobjects.com/akdlm/crnetruntime/clickonce/CRRuntime_32bit_13_0_3.msi а>)
Мы продолжаем получать эту ошибку:
Load report failed.
at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)
at AppSuite.WebApp.CrystalViewer.LoadReport(Boolean bRefresh)
at AppSuite.WebApp.CrystalViewer.Page_Load(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Достигнуто максимальное количество заданий обработки отчетов, настроенное вашим системным администратором.
at CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)
at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)
at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
Метод dispose вызывается в коде, поэтому я не думаю, что это вызывает проблему:
Private oReportDocument As New ReportDocument
Private Sub LoadReport(ByVal bRefresh As Boolean)
'Get the report data
Dim dtReport As DataTable = ReportHelper.GetReportData(Me.CacheKey, bRefresh)
'If there is data to display bind it to the Crystal Viewer
If dtReport.Rows.Count > 0 Then
With oReportDocument
.Load(ReportHelper.GetReportPath(Me.ReportId))
.SetDataSource(dtReport)
.PrintOptions.PaperSize = Common.Settings.CrystalPaperSize
End With
crvMain.ReportSource = oReportDocument
Else
'Hide the controls and display a message if there is no data
crvMain.Visible = False
btnPDF.Visible = False
btnExcel.Visible = False
lblNoResults.Visible = True
End If
End Sub
Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload
oReportDocument.Dispose()
End Sub
часть ASPX
<CR:CRYSTALREPORTVIEWER id="crvMain" HasPrintButton="False" HasExportButton="False"
runat="server" ToolPanelView="None" BorderColor="Transparent" BorderStyle="None"
Height="50px" Width="350px" HasRefreshButton="True" HasCrystalLogo="False"
HasToggleGroupTreeButton="False" meta:resourcekey="crvMainResource1"></CR:CRYSTALREPORTVIEWER>
Изменение PrintJobLimit = -1
в реестре не решило проблему.
Нужно ли нам покупать полную версию отчетов о кристаллах или есть что-то еще, что вызывает эту проблему?