我无法在内存中加载(几个)水晶的 ReportDocuments 的多个实例。使用以下代码:
Dim sRPT As New ReportDocument
sRPT.Load("PATH\TO\MY.RPT")
Dim sRPTs As New List(Of ReportDocument)
For i = 0 To 100
Dim sClone As ReportDocument = sRPT.Clone
sClone.Refresh()
sRPTs.Add(sClone)
Console.WriteLine("RPT Clonado " & i.ToString())
Next
当我到达第 74 个实例时,Refresh() 调用会引发“报告加载失败”异常。此外,即使直接调用 .Load(path) 方法也会发生相同的异常,并且会影响应用程序中的所有 ReportDocumetns,而不管我正在加载/刷新的 RPT 文件是什么。
我目前正在使用 Crystal XI R2,但使用 v12 程序集(CR 2008)测试此代码以同样的问题结束。
有没有人偶然发现过这样的事情?所有这些实例的原因是每个用户的多个 rpt 文件的报告缓存,并且如果有一个不那么讨厌的解决方法来解决这个问题,很可能会保持原样。