このチュートリアルでは、ReportDocument オブジェクト モデルを使用し、実行時にレポートに対するプログラム上の変更を加えます。また、Session を使用して Web ページの再ロード全体でこれらの変更を永続する方法も学習します。
Session の永続を要求するのは Web アプリケーションだけなので、このチュートリアルは Windows プロジェクトには適用されません。
![]() |
---|
永続の概要については、「SDK の基本」の「Crystal Reports で使用する適切な永続アプローチの選択」を参照してください。 |
概要
このチュートリアルで作成するプロジェクトは Web フォームを使用します。Web フォームには、CrystalReportViewer コントロールと、ReportDocument オブジェクト モデル内でレポートの並べ替え順を変更する 2 つのボタンが含まれます。
まず、Session の永続を使用しないでプロジェクトを作成します。永続を使用しないので、並べ替え順序の変更には、ボタンクリック イベントの時間しかかかりません。
次に、Session の永続をプロジェクトに追加します。ReportDocument インスタンスは、その作成時と、ReportDocument インスタンスの状態が変化した時に Session に配置されます。
レポートの再表示が必要なときはいつも ReportDocument インスタンスが Session から引き出され、CrystalReportViewer コントロールにバインドされます。これにより、レポートを表示するたびに、ユーザーは ReportDocument インスタンスの最新バージョンを参照できることが保証されます。
![]() |
---|
このチュートリアルでは、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
これらのサンプルが格納されたフォルダを探すには、「チュートリアルのサンプル コード」を参照してください。