绑定到报表应用程序服务器(Crystal Reports 9 及更高版本)

Note注意

本页描述了在 Crystal Reports for Visual Studio 中未提供但在升级版本中提供的功能。若需更多有关 Crystal Reports for Visual Studio 的信息,请参见“什么是 Crystal Reports for Visual Studio?”有关升级版本的更多信息,请参见“升级选项”

对象模型

此报表绑定方案使用“通过 CrystalReportViewer 对象模型进行报表绑定”

报表的位置

报表位于非托管 RAS 服务器(请参阅“报表应用程序服务器(RAS)”)上。报表包装在 EnterpriseReportDocument 类中。

Crystal 服务概述

此报表绑定方案适用于从服务器资源管理器中的“Crystal 服务”服务器节点访问的报表。

Note注意

有关 Crystal 服务的概述,请参见“使用 Crystal 服务”

本节研究 Crystal Reports 9 中 Crystal 服务的“报表应用程序服务器”子节点。

[服务器名]

  • Crystal 服务
    • 报表应用程序服务器

说明

“报表应用程序服务器”子节点访问并随后显示由非托管 RAS 服务器提供的报表。

将报表从“Crystal 服务”>“报表应用程序服务器”节点拖放到 Web 或 Windows 窗体上后,会生成 EnterpriseReportDocument 的一个实例。EnterpriseReportDocument 类起一个包装类的作用。它用于包装(表示)从非托管 RAS 服务器传出的报表。

在 Crystal Reports 10 中,此绑定方案被以下报表绑定方案替换:

有关 Crystal 服务的比较表格,请参见以下章节之一:

报表绑定方案“使用 ReportDocument.Load() 方法绑定到非托管 RAS”中介绍了一种有关 “报表应用程序服务器(RAS)” 报表绑定的最佳解决方案。

优点

  • 访问简便:可以在树视图中方便地查看非托管 RAS 服务器上的报表,并且可以方便地将其拖动到 Web 窗体上。

缺点

对于对象模型交互,此模型并不特别有效:

  • EnterpriseReportDocument(包装类)仅用于将报表传入和传出非托管 RAS 服务器,而不包含对象模型。
  • 此绑定方案仅提供 CrystalReportViewer 中包含的受限的对象模型。请参见“应该使用哪种对象模型?”

使用“Crystal 服务”>“报表应用程序服务器”

  • 已安装 Crystal Reports 9,并且经验证可以正常工作。
  • 非托管报表应用程序服务器(RAS)必须已安装,并且经验证可正常工作。
Note注意

此过程仅适用于已通过“项目设置”创建的项目。“项目设置”包含此过程需要的特定命名空间引用和代码配置。如果没有该配置,将无法完成此过程。因此,在开始此过程之前,必须首先执行“项目设置”中的步骤。

  1. 在 Visual Studio 中,打开“服务器资源管理器”。

  2. 展开“Crystal 服务”,然后展开“服务器文件”。

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>在 Crystal Reports 9 中,“服务器文件”节点显示 RAS 服务器上的报表,而不是本地文件目录中的报表。</p></td>
</tr>
</tbody>
</table>
  1. 从“服务器文件”树中选择一个报表,并将其拖动到 Web 或 Windows 窗体上。

  2. 切换到代码视图并打开“Web 窗体设计器生成的代码”区域或“Windows 窗体设计器生成的代码”区域。

    Note注意

    已在此区域内实例化并配置了一个 EnterpriseReportDocument 类。

  3. 在 ConfigureCrystalReports() 方法(在“项目设置”中创建)中,将 EnterpriseReportDocument 实例赋给 CrystalReportViewer 控件的 ReportSource 属性。

``` vb
myCrystalReportViewer.ReportSource = enterpriseReportDocument1
```

``` csharp
crystalReportViewer.ReportSource = enterpriseReportDocument1;
```
  1. 若要查看该报表,请生成并运行您的项目。

请参见