次の方法で共有


キャッシュされた埋め込みレポート クラスへのバインド

オブジェクト モデル

このレポートをバインドするシナリオでは ReportDocument を使用しています(「ReportDocument オブジェクト モデルによるレポートのバインド」を参照)。

レポートの場所

レポートはプロジェクトに埋め込まれます。

説明

レポートが Visual Studio プロジェクトに埋め込まれると、プロジェクトのレポート ファイルを表示するレポート ラッパー クラスが自動的に生成されます。同時に、そのレポートのキャッシュ管理ユーティリティ クラスも自動的に生成されます。

「埋め込みレポート クラスへのバインド」で説明されています。

このシナリオでは、CrystalReportViewer コントロールをキャッシュ管理ユーティリティ クラスにバインドし、ASP.NET Cache オブジェクトにキャッシュされるレポートを自動的に処理するようにします。

Note

レポートのキャッシュとキャッシュ管理ユーティリティ クラスの詳細については、「通常のレポートとキャッシュされたレポートの選択」を参照してください。

キャッシュの使用

キャッシュは限定された特有の使い方をします。システム リソースが慎重に管理されていない場合は、システム リソースを過度に消費する可能性があります。

埋め込みでないレポートのキャッシュ

埋め込みでないレポートのキャッシュを管理する場合は、個人用のキャッシュ管理ユーティリティ クラスを作成する必要があります。詳細については、「キャッシュ管理ユーティリティ クラスにロードされる埋め込みでない Report クラスへのバインド」を参照してください。

長所

  • 共有性:共有性が高く、パラメータやログオン情報の変更を少なくしてレポートを保存するのに最適です。
  • データ アクセスの最適化:共有能力に優れたレポートが膨大である場合、またはクエリーが大変複雑で取得するのに時間を要する場合も、キャッシュ管理ユーティリティ クラスによってデータへの迅速なアクセスが可能です。

短所

  • サーバーの負荷:ASP.NET Cache オブジェクトに保存されるレポートによって、サーバー上でメモリ リソースに負荷がかかる場合があります。
  • 永続の問題:キャッシュにはある種の依存性があり、それによってレポート インスタンス上の変更の確認や、レポート インスタンスの再キャッシュが可能になります。しかし、データベースが変更された場合、キャッシュに存在するレポート インスタンスは更新されないため、変更が反映されません。
  • リソースの消費:パラメータを指定したレポートが、異なるパラメータ文字列で頻繁に呼び出されると、特にそのパラメータの 1 つがユーザー ID である場合は、その都度レポートが新しくキャッシュされます。これがシステム リソースを消費します。レポートの共有性が高くなければ、レポート インスタンスは代わりに Session オブジェクトに割り当てられます。詳細については、「Session と ReportDocument オブジェクト モデルの永続」を参照してください。

キャッシュ管理ユーティリティ クラスにバインドする

Note

この手順は、「プロジェクトの設定」で作成されたプロジェクトにのみ有効です。「プロジェクトの設定」では、この手順で必要な特定の名前空間の参照とコード設定が説明されており、この設定は、この手順を完了するために必須です。したがって、この手順を始める前にまず、「プロジェクトの設定」の手順を実行しておく必要があります。

  1. 「プロジェクトの設定」で作成した ConfigureCrystalReports() メソッド内で、既存のコードを削除し、レポート ラッパー クラスをキャッシュ管理ユーティリティ クラスで置き換えます。

  2. Hierarchical Grouping.rpt と関連するキャッシュ管理ユーティリティ クラスをインスタンス化します。

``` vb
Dim cachedHierarchicalGroupingReport As CachedHierarchical_Grouping
= New CachedHierarchical_Grouping()
```

``` csharp
CachedHierarchical_Grouping cachedHierarchicalGroupingReport = new
CachedHierarchical_Grouping();
```
  1. キャッシュ管理ユーティリティ インスタンスを CrystalReportViewer コントロールに渡します。
``` vb
myCrystalReportViewer.ReportSource = cachedHierarchicalGroupingReport
```

``` csharp
crystalReportViewer.ReportSource = cachedHierarchicalGroupingReport;
```
  1. レポートを表示するには、プロジェクトをビルドおよび実行してください。

関連項目