绑定到服务器文件(VS .NET 2003)

对象模型

此报表绑定方案使用 CrystalReportViewer(请参见“通过 CrystalReportViewer 对象模型进行报表绑定”)。

报表的位置

报表位于本地文件目录中的报表文件夹中(请参见“示例报表目录”)。此位置中的报表以报表 Web 服务的形式提供。

Crystal 服务概述

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

Note注意

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

本节研究 Visual Studio .NET 2003 中 Crystal 服务的“服务器文件”子节点。

[服务器名]

  • Crystal 服务
    • 服务器文件

说明

报表以来自本地文件目录的报表 Web 服务的形式提供,“服务器文件”子节点访问并随后显示这些报表。这些报表用报表 Web 服务协议提供。在 Visual Studio .NET 2003 中,若要访问“服务器文件”,请单击 Crystal 服务下面的“服务器文件”节点。

若需Crystal 服务的对照表,请参见“使用 Crystal 服务的 CrystalReportViewer 绑定方案”“使用 Crystal 服务(VS .NET 2002 和 2003)的ReportDocument 绑定方案”.

在 Crystal Reports 9 和 10 中,Crystal 服务的“服务器文件”子节点被其它直接连接到“报表应用程序服务器(RAS)”服务器的 Crystal 服务子节点替代(绕过了报表 Web 服务协议):

优点

  • 集中访问报表:为示例报表目录中的所有报表提供一个访问点(请参见“示例报表目录”),这样可以在本地硬盘上创建一个高效的报表资源库。

缺点

  • 在 Crystal Reports 9 和 10 中被非托管 RAS Crystal 服务节点替换。有关更多详细信息,请参见上文中的“说明”部分。
  • 受限对象模型:这个绑定方案只提供属于 CrystalReportViewer 的受限对象模型。请参见“应该使用哪种对象模型?”

配置服务器文件

在 Crystal Reports for Visual Studio 2003 中,服务器文件是作为 Crystal 服务节点提供的。在 Visual Studio 2003 包含的 Crystal Reports 版本之上安装 Crystal Reports 9 或 10(完整版)后,就会从可见节点中删除“服务器文件”节点。

每个 “什么是 Crystal Reports for Visual Studio?” 版本在 SDK 中继续支持服务器文件。但是,需要手动编写代码才能在该版本中使用服务器文件。

有关服务器文件配置的详细说明,请参见“在 Crystal 服务中配置服务器文件”

安装 Crystal 服务

必须已安装了 Crystal Reports for Visual Studio .Net 2003。

安装 Visual Studio .NET 2003 时,默认情况下不会安装 Crystal 服务。在此过程中,将从 Visual Studio .Net 2003 安装 CD 中安装 Crystal 服务。

  1. 在 Microsoft Visual Studio .NET 安装程序 CD 上,找到 Crystal Reports。
  2. 选择“Crystal Web 服务”。
  3. 单击“更新”按钮。

使用“Crystal 服务”>“服务器文件”节点

  • 安装了 Crystal Reports for Visual Studio .NET 2003,并且经验证可正常工作。
  • 或者,安装了 Crystal Reports 9 或更高版本,并且经验证可正常工作。
    Note注意

    在 Crystal Reports 9 和 10 中,服务器文件被替换(不再显示为 Crystal 服务下面的节点)。但是,仍可以手动编写服务器文件代码。

Note注意

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

  1. 从“视图”菜单中,单击“其它窗口”,然后单击“服务器资源管理器”。

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

  3. 从“服务器文件”树中选择一个报表,并将其拖到窗体上。

    Note注意

    将服务器文件报表放到窗体上后,会在窗体的设计器生成的代码区域中添加 ServerFileReport 类的一个实例。

    当在设计器生成的代码区域实例化并配置从 System.ComponentModel.Component 继承的类(例如 ServerFileReport)时,此实例化类的图标显示在“设计”视图中窗体的底部。

    在窗体设计视图的底部,将出现一个 serverFileReport1 对象。

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

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

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

    myCrystalReportViewer.ReportSource = serverFileReport1
    
    crystalReportViewer.ReportSource = serverFileReport1;
    

若要查看该报表,请生成并运行您的项目。

手动编写服务器文件代码

  • 安装了 Crystal Reports for Visual Studio .NET 2003,并且经验证可正常工作。
  • 或者,安装了 Crystal Reports 9 或更高版本,并且经验证可正常工作。
    Note注意

    在 Crystal Reports 9 和 10 中,服务器文件被替换(不再显示为 Crystal 服务下面的节点)。但是,仍可以手动编写服务器文件代码。

Note注意

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

  1. 在 ConfigureCrystalReports() 方法(在“项目设置”中创建)中,声明 ServerFileReport 的一个实例。

    Dim myServerFileReport As CrystalDecisions.Shared.ServerFileReport = _
    New CrystalDecisions.Shared.ServerFileReport()
    
    CrystalDecisions.Shared.ServerFileReport serverFileReport = new CrystalDecisions.Shared.ServerFileReport();
    
  2. 将 ServerFileReport 的 ObjectType 属性设置为 REPORT。

    myServerFileReport.ObjectType = CrystalDecisions.[Shared].EnumServerFileType.REPORT
    
    serverFileReport.ObjectType = CrystalDecisions.Shared.EnumServerFileType.REPORT;
    
  3. 将 ServerFileReport 的 ReportPath 属性设置为报表及其子目录。有关示例报表的信息,请参见“示例报表目录”

    myServerFileReport.ReportPath = "\General Business\World Sales Report.rpt"
    
    serverFileReport.ReportPath = "\\General Business\\World Sales Report.rpt";
    
  4. 将 ServerFileReport 的 WebServiceURL 属性设置为所安装 Crystal Reports 版本的查看器虚拟目录,请参见“查看器虚拟目录”

    Note注意

    在以下示例代码中,为 Crystal Reports 10 配置了查看器虚拟目录。

    myServerFileReport.WebServiceUrl = "https://localhost/crystalreportviewers10/ServerFileReportService.asmx"
    
    serverFileReport.WebServiceUrl = "https://localhost/crystalreportviewers10/ServerFileReportService.asmx";
    
  5. 将 ReportSource 控件的 CrystalReportViewer 属性设置为 ServerFileReport 实例。

    myCrystalReportViewer.ReportSource = myServerFileReport
    
    crystalReportViewer.ReportSource = serverFileReport1;
    

请参见