绑定到报表应用程序服务器(Crystal Reports 9 及更高版本)
注意 |
---|
本页描述了在 Crystal Reports for Visual Studio 中未提供但在升级版本中提供的功能。若需更多有关 Crystal Reports for Visual Studio 的信息,请参见“什么是 Crystal Reports for Visual Studio?”有关升级版本的更多信息,请参见“升级选项”。 |
对象模型
此报表绑定方案使用“通过 CrystalReportViewer 对象模型进行报表绑定”。
报表的位置
报表位于非托管 RAS 服务器(请参阅“报表应用程序服务器(RAS)”)上。报表包装在 EnterpriseReportDocument 类中。
Crystal 服务概述
此报表绑定方案适用于从服务器资源管理器中的“Crystal 服务”服务器节点访问的报表。
注意 |
---|
有关 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)必须已安装,并且经验证可正常工作。
注意 |
---|
此过程仅适用于已通过“项目设置”创建的项目。“项目设置”包含此过程需要的特定命名空间引用和代码配置。如果没有该配置,将无法完成此过程。因此,在开始此过程之前,必须首先执行“项目设置”中的步骤。 |
在 Visual Studio 中,打开“服务器资源管理器”。
展开“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>
从“服务器文件”树中选择一个报表,并将其拖动到 Web 或 Windows 窗体上。
切换到代码视图并打开“Web 窗体设计器生成的代码”区域或“Windows 窗体设计器生成的代码”区域。
注意 已在此区域内实例化并配置了一个 EnterpriseReportDocument 类。
在 ConfigureCrystalReports() 方法(在“项目设置”中创建)中,将 EnterpriseReportDocument 实例赋给 CrystalReportViewer 控件的 ReportSource 属性。
``` vb
myCrystalReportViewer.ReportSource = enterpriseReportDocument1
```
``` csharp
crystalReportViewer.ReportSource = enterpriseReportDocument1;
```
- 若要查看该报表,请生成并运行您的项目。