ReportDocument 对象模型

ReportDocument 类为 SDK 提供了范围比 CrystalReportViewer 对象模型更广泛的对象模型。

ReportDocument 类是 CrystalDecisions.CrystalReports.Engine 命名空间的组成部分。它起到一条通道的作用,通向 Engine 命名空间中的一组类,这些类为通过编程方式对报表进行操作提供了更多工具。

ReportDocument 对象模型

在上一节中,介绍了如何通过将报表路径字符串直接赋给 CrystalReportViewer 控件来使用基本的 CrystalReportViewer 对象模型。请参见 “CrystalReportViewer 对象模型”

在对象模型的下一个级别,将在把报表赋给该控件之前,使用 ReportDocument 对象模型将报表封装到一个 ReportDocument 实例内。这样就可以访问 ReportDocument 中提供的更为复杂和强大的对象模型了。

Note注意

由于此过程会涉及这两个对象模型(使用 CrystalReportViewer 加载和显示报表,使用 ReportDocument 封装和操作报表),因此这两个对象模型的角色容易被混淆。使用 ReportDocument 对象模型封装了报表后,所有报表操作必须限制在该模型中。如果尝试使用 CrystalReportViewer 的属性和方法来操作报表,这两个对象模型会发生冲突,导致意外的行为。

在引入了附加的对象模型后,应将 CrystalReportViewer 代码的使用限制为仅用于设置显示属性。

有关如何选择对象模型的更多信息,请参见“应该使用哪种对象模型?”

ReportDocument 和 ReportClientDocument(RAS)

在Crystal Reports 9 中,这两种对象模型是完全分开的。在 Crystal Reports 10 和更高版本中,这两种对象模型已不再是彻底分开的。ReportDocument 对象模型现在是 ReportClientDocument 对象模型功能的代理(子集)。

Crystal Reports 2008 允许用户通过 ReportDocument.ReportClientDocument 属性访问 ReportClientDocument 对象模型的受限版本。

ReportDocument 对象模型关系图

此关系图显示了 ReportDocument 对象模型的关系。

图 3: ReportDocument 对象模型

请参见