0

我无法在内存中加载(几个)水晶的 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 文件的报告缓存,并且如果有一个不那么讨厌的解决方法来解决这个问题,很可能会保持原样。

4

1 回答 1

0

我之前遇到过这个问题,而 AFAIK 解决它的唯一方法是确保在完成报告后关闭它们。

于 2010-08-25T16:44:40.130 回答