Share via


ReportDocument オブジェクト モデル

ReportDocument クラスは、SDK に CrystalReportViewer オブジェクト モデルよりも豊富な機能のオブジェクト モデルを提供します。

ReportDocument クラスは、CrystalDecisions.CrystalReports.Engine 名前空間に含まれます。Engine 名前空間にある、プログラムによるレポート操作のための多くのツールを提供する一連のクラスへのゲートウェイとして機能します。

ReportDocument オブジェクト モデル

前のセクションでは、レポートのパス文字列を CrystalReportViewer コントロールに直接割り当てることによって基本の CrystalReportViewer オブジェクト モデルを操作する方法を説明しました。詳細については、「CrystalReportViewer オブジェクト モデル」を参照してください。

次のレベルのオブジェクト モデルでは、ReportDocument オブジェクト モデルを使用してレポートを ReportDocument のインスタンス内にカプセル化して、コントロールに割り当てます。これにより、ReportDocument で提供されるより複雑で強力なオブジェクト モデルへのアクセスが可能となります。

Note

このプロセスには、レポートの読み込みと表示を行う CrystalReportViewer と、レポートのカプセル化と操作を行う ReportDocument の 2 つのオブジェクト モデルが含まれます。そのため、これら 2 つのオブジェクト モデルの役割は混同されがちです。いったん ReportDocument の Engine オブジェクト モデルを使用してレポートをカプセル化すると、すべてのレポート操作をこのモデルで行う必要があります。CrystalReportViewer のプロパティとメソッドを使用してレポートを操作しようとすると、この 2 つのオブジェクト モデルが競合し、予期しない動作が発生します。

追加のオブジェクト モデルを導入した場合には、CrystalReportViewer コードの使用は表示プロパティの設定だけに限定してください。

オブジェクト モデルの選択方法の詳細については、「適切なオブジェクト モデルの選択」を参照してください。

ReportDocument と ReportClientDocument(RAS)

Crystal Reports 9 では、これら 2 つのオブジェクト モデルは完全に区別されていました。Crystal Reports 10 およびそれ以降では、オブジェクト モデル間の基本的な区別は排除されました。ReportDocument オブジェクト モデルは、ReportClientDocument オブジェクト モデルの機能(の一部)に対するプロキシとして機能するようになりました。

Crystal Reports 2008 では、ReportDocument.ReportClientDocument プロパティを使用して制限されたバージョンの ReportClientDocument オブジェクト モデルにアクセスできます。

ReportDocument オブジェクト モデルの概念図

次の図は、ReportDocument オブジェクト モデルの関係を示しています。

ms225250.om_reportdocument(ja-jp,VS.90).gif

図 3: ReportDocument オブジェクト モデル

関連項目