2

表示する前に SQL から取得したデータを処理する必要があるレポートがあります。そのために、カスタム コードと、処理されたすべてのデータをプッシュするディクショナリがあります。私の問題は、レポートを Word にエクスポートするときにレポート変数に辞書を保存すると、その変数が削除されたように見えることです。レポート変数のライフサイクルはどのようなものですか? レポートの存続期間中にオブジェクトを保存する最も便利な方法は何ですか?

ありがとう!

4

1 に答える 1

2

SSRS 2008 R2 での変数のライフサイクルに関する質問の一部に答えることができるように、約 6 週間カスタム コードをいじっています。

ディクショナリを使用して合計を保存するレポートがあり、財務関連の専門的な小計を提供できます。確認できることがあります(まだコメントできないため)。

変数を「共有」として宣言しましたか。これは、VB.net に変換されないカスタム コード固有のキーワードです。これにより、変数が次のページまで存続することが保証されます。これを Excel でテストしたところ、Word は変数のデータを正常に転送するように見えました。

トレードオフがありますが、SSRS の「レポート オン デマンド」エンジン (Web では、BIDS ではなく) では変数が保持され、キャッシュ自体がクリアされるまでガベージ コレクションは行われません。パラメータがいつ変更され、変数がクリアされたかを示すカスタム コードをいくつか書きました。

コード;

Public Shared Dim Totals As New System.Collections.Generic.Dictionary(Of String, Decimal)

Public Function WipeKeys() as Decimal 'Clear Data from Dictionary (this will clear the cached object as well)
  Totals.Clear()
  Return 0D
End Function

また、追加ループを確実に減らすために、可能な限りキーを上書きすることをお勧めします。

よろしく、

于 2013-05-15T13:45:00.877 に答える