0

Crystal の 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) メソッドを直接呼び出しても同じ例外が発生し、ロード/更新している RPT ファイルに関係なく、アプリケーション内のすべての ReportDocumetns に影響します。

現在、Crystal XI R2 を使用していますが、このコードを v12 アセンブリ (CR 2008) でテストすると、同じ問題で終了しました。

誰かがこのようなことでつまずいたことがありますか? このすべてのインスタンスの理由は、ユーザーごとに複数の rpt ファイルのレポート キャッシュがあり、この問題に対するそれほど厄介な回避策があれば、ほとんどの場合そのままになります。

4

1 に答える 1

0

私は以前にこれに遭遇しました、そしてそれを回避する唯一の方法はあなたがそれらを使い終わったときにあなたがレポートを閉じることを確実にすることです。

于 2010-08-25T16:44:40.130 に答える