【问题标题】:Crystal Reports Max active instancesCrystal Reports 最大活动实例
【发布时间】:2010-08-25 16:38:08
【问题描述】:

我无法在内存中加载(多个)水晶报表文档的多个实例。使用以下代码:

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 文件的报告缓存,并且如果有一个不那么讨厌的解决方法来解决这个问题,很可能会保持原样。

【问题讨论】:

    标签: asp.net crystal-reports reportdocument


    【解决方案1】:

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

    【讨论】:

    • 感谢您的快速发帖!一段时间前,我们也不得不审查报告模块中的所有代码,以解决类似的问题。但是这个“报告缓存”旨在维护开放的即用型实例,因此我们不需要每次需要使用它时都打开这个报告(我们使用的 RPT 需要永远加载,可能我们不会被允许更改它们)所以关闭 all 缓存报告不是一个选项(如果有不需要的 - 永远空闲 - 报告实例,我们将部分清理缓存)。再次感谢德国人
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多