推荐方案摘要
为帮助您为应用程序选择最佳报表绑定方案,本节总结了各种推荐方案的优缺点,并说明了一些方案更常用的原因。
注意 |
---|
大多数网站或 Windows 项目可以依赖两种最简单的绑定方案:绑定到嵌入式或非嵌入式报表(教程中会逐步说明这两种方案)。因此,在阅读本节之前,请尽力完成“教程”中的一个教程。 |
适合 Crystal Reports 的推荐绑定方案
在使用 ReportDocument 对象模型绑定报表和使用 CrystalReportViewer 对象模型绑定报表这两种方案中,通常推荐采用前者。(请参见“通过 ReportDocument 对象模型进行报表绑定”和“通过 CrystalReportViewer 对象模型进行报表绑定”。)这是因为 ReportDocument 对象模型提供了更多的 API 用于通过编程方式与报表进行交互。有关对象模型的更多信息,请参见“应该使用哪种对象模型?”
大多数 Crystal Reports for Visual Studio 用户都愿意使用“绑定到嵌入式报表类”这一方案。虽然这个方案不是优化性能的最佳选择,但它是最简单的方法:将报表添加到项目中以创建报表包装类,实例化报表包装类,然后将其传递给 CrystalReportViewer 控件。由于报表包装类继承自 ReportDocument 基类,因此可以使用 ReportDocument 对象模型的全部功能。
“绑定到已加载到 ReportDocument 类中的非嵌入式报表”中描述了在 Crystal Reports for Visual Studio 中绑定报表的另一种常见方式。采用这种方法,将可以使用 ReportDocument 对象模型的全部功能,而且这种方法还具有非嵌入式报表的优点,因此无需重新编译应用程序就可以对报表进行修改。
一些绑定方案使用 ASP.NET Cache 对象(请参见“ 绑定到缓存的嵌入式报表类 ”和“绑定到已加载到缓存管理实用程序类的非嵌入式报表”)。这些方案为具有高可共享性的报表优化性能。请参见“缓存具有“高可共享性”的报表”。
适合报表应用程序服务器(RAS)的推荐绑定方案
如果在 Crystal Reports for Visual Studio 应用程序中添加了非托管报表应用程序服务器(请参见“报表应用程序服务器(RAS)”)许可,则将获得额外的功能:
- 增强的可伸缩性(由 RAS 报表引擎提供)
- 可以访问 ReportClientDocument 对象模型,该模型提供了大量用于修改报表的功能。
对于 RAS,可以使用三种报表绑定方案,具体应使用哪一种取决于如何配置项目。
- 如果使用的是 Crystal Reports 10 和 RAS 10,可将原来用 Crystal Reports 创建的项目(使用嵌入式报表)迁移到 RAS 和 ReportClientDocument 对象模型。对于每个报表,只需添加两行代码。请参见“使用 ReportDocument.Load() 方法绑定到非托管 RAS”。
- 若要优化以上方案,请在 RAS 服务器上复制您的嵌入式报表,然后指示 RAS 使用那些副本。请参见“使用 ReportDocument.FileName 属性绑定到非托管 RAS 服务器”。
- 对于在 RAS 10 中创建的新项目,以及使用 RAS 9 创建的所有项目,可将报表直接加载到 ReportClientDocument 对象模型中。请参见“使用 ReportClientDocument.Open() 方法绑定到非托管 RAS 服务器”。
Crystal Reports Server 或 BusinessObjects Enterprise 的推荐绑定方案
如果已经升级到 Crystal Reports Server 或 BusinessObjects Enterprise,则可以使用四个推荐的报表绑定方案。应使用哪种方案取决于对报表修改和可伸缩性的要求:
- 可以显示报表,但不需要通过编程方式进行任何修改,以获得最佳的速度和性能。请参见“绑定到 ReportSource(Crystal Reports Server 或 BusinessObjects Enterprise 11)”。
- 通过访问 ReportClientDocument 对象模型,可以通过编程方式修改报表(作为显示过程的一部分)。请参见“使用 ReportAppFactory.OpenDocument() 方法绑定到托管 RAS 服务器”。
- 如果将 Crystal Reports 开发人员版与 Crystal Reports Server 或 BusinessObjects Enterprise 一同使用,可将原来用 Crystal Reports 创建的项目(使用嵌入式报表)移植到 Crystal Reports Server 或 BusinessObjects Enterprise,并通过将嵌入式报表的副本发布到 Crystal Reports Server 或 BusinessObjects Enterprise 中来保留现有报表代码。请参见“使用 ReportDocument.FileName 属性绑定到托管 RAS 服务器”以引用报表的副本。
- 可以将报表作为 Enterprise 框架中的一个 InfoObject 实例访问,这样就可以对其进行调度和修改其参数。请参见“绑定到转换为 Report 实例的 InfoObject”。
阅读完本节后,您可能想要查看所有方案的详细列表,以完整地浏览 SDK 中的所有可用选项。请参见“所有方案的详细列表”。