次の方法で共有


チュートリアル: Session を使った ReportDocument オブジェクト モデルの永続

このチュートリアルでは、ReportDocument オブジェクト モデルを使用し、実行時にレポートに対するプログラム上の変更を加えます。また、Session を使用して Web ページの再ロード全体でこれらの変更を永続する方法も学習します。

Session の永続を要求するのは Web アプリケーションだけなので、このチュートリアルは Windows プロジェクトには適用されません。

Note

永続の概要については、「SDK の基本」の「Crystal Reports で使用する適切な永続アプローチの選択」を参照してください。

概要

このチュートリアルで作成するプロジェクトは Web フォームを使用します。Web フォームには、CrystalReportViewer コントロールと、ReportDocument オブジェクト モデル内でレポートの並べ替え順を変更する 2 つのボタンが含まれます。

まず、Session の永続を使用しないでプロジェクトを作成します。永続を使用しないので、並べ替え順序の変更には、ボタンクリック イベントの時間しかかかりません。

次に、Session の永続をプロジェクトに追加します。ReportDocument インスタンスは、その作成時と、ReportDocument インスタンスの状態が変化した時に Session に配置されます。

レポートの再表示が必要なときはいつも ReportDocument インスタンスが Session から引き出され、CrystalReportViewer コントロールにバインドされます。これにより、レポートを表示するたびに、ユーザーは ReportDocument インスタンスの最新バージョンを参照できることが保証されます。

Note

このチュートリアルでは、ReportDocument オブジェクト モデルへの変更を永続するため、Session を使用します。CrystalReportViewer コントロール内に含まれる限られたオブジェクト モデルだけを使用する場合は、ViewState のみを使用するようにしてください。

Session を使って ReportDocument オブジェクトを永続する場合、他の永続モデルも関係してきますか。

Session を使って ReportDocument オブジェクトを永続する場合、他の永続モデルも関係してきますか。

はい。通常、ASP.NET Web アプリケーション オブジェクトでは永続に Session を使用しますが、Web サーバー コントロールでは ViewState を使用します。Crystal Reports for Visual Studio Web アプリケーションでは、オブジェクトと Web サーバー コントロールを使用してレポートと対話するため、Session と ViewState で永続を共有します。

  • Session は、実行時にレポートとプログラム的に対話する ReportDocument オブジェクト モデルを永続します。
  • ViewState は、レポートを表示する CrystalReportViewer コントロールを永続します。特に、ViewState は CrystalReportViewer のツールバーに設定される表示プロパティを永続します。ViewState は、これ以外にも、ツールバーのボタンでトリガされる Zoom、NextPage など、あらゆるイベントを永続します。

ViewState の永続は、自動的に管理されます。このため、このチュートリアルでは Session の永続だけをコード化します。

サンプル コード

このチュートリアルは、プロジェクトの完全バージョンを示す Visual Basic および C# のサンプル コードと共に提供されます。このチュートリアルの手順に従って新しいプロジェクトを作成するか、またはサンプル コード プロジェクトを開いて完全バージョンを使用します。

サンプル コードは言語とプロジェクト タイプに分類され、フォルダに格納されています。各サンプル コード バージョンのフォルダ名は次のとおりです。

  • C# Web サイト:CS_Web_RDObjMod_Session
  • Visual Basic Web サイト:VB_Web_RDObjMod_Session

これらのサンプルが格納されたフォルダを探すには、「チュートリアルのサンプル コード」を参照してください。

この節の内容

関連項目