次の方法で共有


オブジェクト モデルの混在の回避

CrystalReportViewer オブジェクト モデルを他のオブジェクト モデルと混在させないでください。

単純なパス文字列を使用して CrystalReportViewer コントロールをレポートに直接バインドしている場合には、制限されたオブジェクト モデルとして CrystalReportViewer コントロールを正常に使用できます。

しかし、ReportDocument や ReportClientDocument などの他のオブジェクト モデルにレポートをカプセル化し、次にこのコントロールをそのオブジェクト モデルにバインドする場合は、直ちに CrystalReportViewer オブジェクト モデルの使用を中止してください。CrystalReportViewer コントロールが提供する制限されたモデルは、これがバインドされているさらに強力なオブジェクト モデルと重複することになります。また、CrystalReportViewer オブジェクト モデルに適用される設定が他のオブジェクト モデルに表示され、予期しない動作や例外が発生する可能性もあります。

たとえば、ReportDocument オブジェクト モデルを使用して、月次レポートをサーバーからエクスポートまたは出力するとします。CrystalReportViewer オブジェクト モデルを使用してこのレポートに月のパラメータを設定した場合には、エラーが発生する可能性があります。ReportDocument オブジェクト モデルは、CrystalReportViewer オブジェクト モデルに適用されているパラメータの設定を確認できません。ReportDocument オブジェクト モデルは、月のパラメータの設定内容を認識せずにこのレポートのエクスポートまたは出力を試みることになりますが、その結果、正しくない月を表示したり、例外をスローしたりする場合さえあります。

最良の対処方法は、CrystalReportViewer コントロールが基本のオブジェクト モデルの 1 つにバインドされている場合のみ、このコントロールをレポートの表示設定に使用することです。