应该对 Crystal Reports 使用哪种持久性方法?

当规划用 Crystal Reports SDK 生成 Web 应用程序时,其中最重要的一项考虑就是使用哪种持久性方法。通过学习有关持久性的 SDK 基础知识,将有助于选择最佳的 Crystal Reports for Visual Studio 项目结构。

什么是持久性?

Web 页不能保持状态(连接到网站的用户的状态和信息)。从服务器请求每个 Web 页,将其发送到用户,随后该进程终止。对于阅读文本信息,这没有问题;但对于设计需要在页重新加载和重新定向过程中保持信息的 Web 应用程序来说,这便是一个问题。

持久性是指使用某种机制保持每个用户的状态(例如每个用户正在查看的当前报表页)不受页重新加载和重新定向的影响。

持久性最佳做法

在本节中,将介绍在 Web 页重新加载期间刷新 Crystal 报表时保持对 Web 页上该 Crystal 报表所做更改的最佳做法。需要保持的更改可能如同单击了报表查看器的“下一页”按钮后进入第二页那样简单,也可能如同更改了报表的参数后显示完全不同的数据那样复杂。

在 Crystal Reports for Visual Studio 中,持久性必须应用于以下内容:

  • CrystalReportViewer 控件。
  • 绑定到 CrystalReportViewer 控件的报表。

在 ASP 和 ASP.NET 中保持状态的方法

在传统 ASP 和 ASP.NET 中,状态是通过 Web 浏览器或 Web 服务器维持的,方式如下。

环境
客户端还是服务器?
名称
方法
ASP*
客户端浏览器
窗体字段
通过窗体提交字段在 Web 页间传递名称/值对。
ASP*
客户端浏览器
URL 参数
使用 URL 参数在 Web 页间传递名称/值对。
ASP*
客户端浏览器
Cookie
将名称/值对赋给客户端浏览器上的 Cookie,然后在新页中获取该 Cookie。
ASP*
Web 服务器
Session 对象
将实例化的对象赋给服务器上的 Session 对象,然后从新页中的 Session 检索。
ASP*
Web 服务器
Application 对象
将实例化的对象赋给服务器上的 Application 对象,然后从新页中的 Application 检索。
ASP.NET
客户端浏览器
ViewState 对象
将字符串值赋给 ASP.NET Web 窗体的 ViewState 对象。
ASP.NET
Web 服务器
Cache 对象
与 Application 对象相同,但具有增强的功能。

* 所有 ASP 持久性方法都可以在 ASP.NET 中使用。

哪种持久性方法最适合用于 Crystal Reports?

最适合用于 Crystal Reports 的持久性方法是 ViewState、Session 或 Cache。

在此节中: