转换 RDL 文件和 RDLC 文件
如果同时使用 ReportViewer 控件和 Microsoft SQL Server 2005 Reporting Services,则可以重用在这两种报表技术下创建的报表。
在 SQL Server 2005 Reporting Services 中创建的报表(保存为 .rdl 文件)可以转换为 ReportViewer 控件所使用的客户端报表定义 (.rdlc) 文件格式。这称为 RDL 到 RDLC 转换。
在 ReportViewer 控件中创建的报表(保存为 .rdlc 文件)可以转换为 SQL Server Reporting Services 中使用的报表定义 (.rdl) 文件格式。这称为 RDLC 到 RDL 转换。
比较 RDL 和 RDLC
RDL 文件和 RDLC 文件在技术和术语上有很重要的差异,如下所述:
RDL 和 RDLC 是由称为报表定义语言的 XML 架构定义的。这两种文件格式的架构是相同的。SQL Server 2005 联机丛书中介绍了这种架构。
用来处理 .rdlc 文件的 ReportViewer 控件忽略 RDL 的 <Query> 元素。如果报表定义中包含查询,此控件将不处理它。
注意 |
---|
客户端报表定义 (.rdlc) 文件只有在源自 .rdl 文件时才会包含查询。 |
在 Visual Studio 2008 和 SQL Server 2005 中,数据集和数据源术语具有不同的含义。在 Visual Studio 中,数据集是数据表的集合,在逻辑上等同于检索数据的查询或命令。在 Reporting Services 中,数据集包括下列部分:
数据源信息,包括数据源类型和连接字符串。数据源类型指定在报表服务器上部署的数据处理扩展插件。
凭据信息,指定如何获取数据源连接的凭据。
用来检索数据的查询或命令信息。
将 .rdlc 文件配置为在 ReportViewer 控件中运行时,该文件的数据集对象、绑定源对象和表对象将直观地显示在设计器视图的底部。下图说明了这些对象如何显示在 Windows 窗体中(同一数据绑定对象在网页中的显示方式不同):
如果选择 .rdlc 文件用于 ReportViewer 控件,而数据对象未出现在项目中,则您看到的很可能是重命名的 .rdl 文件,需要对该文件执行其他转换步骤才能使 .rdlc 文件正常运行。
数据集名称可能会产生误解;默认情况下,Reporting Services 将数据源名称用于所创建的第一个数据集(例如,即使数据集只从一个表中检索数据,它也可能被称为“Northwind”)。
如何转换报表定义
只有 SQL Server 2005 RDL 文件可以转换为 RDLC 文件。如果您具有早期版本的 RDL 文件,则必须将其升级到 SQL Server 2005,才能将其转换为 .rdlc 文件格式。若要升级报表定义,请在 SQL Server 2005 版本的报表设计器中打开它。
转换任何一种文件类型的报表定义都需要重新创建数据源和查询信息。确保所选择的数据源架构与原始报表中使用的数据源架构相同或在结构上相同。如果架构不同,则报表布局可能对要使用的数据源无效。如果希望使用不同的数据源,从头开始重新创建报表会比转换报表更容易些。
RDL 到 RDLC 转换
将 .rdl 文件转换为 .rdlc 格式时,必须用应用程序中提供的数据结构手动替换报表定义中的数据源和查询信息。
使用 .rdlc 文件扩展名重命名 .rdl 文件。
在 Visual Studio 2008 中,打开将包含报表的解决方案或项目。
创建或添加用来定义要用于项目或解决方案的数据的数据集。有关更多信息,请参见为报表创建数据源。
在“项目”菜单上,单击**“添加现有项”**,然后选择第一步中创建的 .rdlc 文件。
在此项目中,打开用来包含此报表的窗体或网页。
从工具箱的数据组中,将 ReportViewer 控件拖到该窗体或网页上。
在**“ReportViewer 任务”智能标记面板的“选择报表”**中,选择要在该控件中使用的 .rdlc 文件。
在**“ReportViewer 任务”智能标记面板的“选择数据源”**中,选择要使用的数据集。数据集对象、绑定源对象和表对象将显示在工作区的底部。有关更新数据源引用的更多信息,请参见更新和重新绑定数据源引用(Visual Studio 报表设计器)。
保存所有文件,然后生成或部署此项目以验证该报表是否包含所需的数据。
RDLC 到 RDL 转换
满足下列条件时,.rdlc 文件将自动转换为 .rdl 格式:
.rdlc 文件所使用的数据源使用集成安全性。
通过数据表提供报表数据。如果 .rdlc 使用业务对象中的数据,则必须手动转换 .rdlc 文件。报表服务器不具有处理报表中的业务对象的能力。
.rdlc 文件所使用的数据源映射到报表服务器上安装的数据处理扩展插件之一(例如,如果数据源是 SQL Server 数据库,则可以使用报表服务器上默认安装的 SQL Server 数据处理扩展插件)。
不需要修改查询和数据源连接信息。
若要自动转换 .rdlc,可以将 .rdlc 文件重命名为 .rdl,然后将 .rdl 文件发布或上载到报表服务器。可以使用 SQL Server 2005 中的 Business Intelligence Development Studio 发布 .rdl 文件。有关创建报表项目、发布报表、上载文件的详细信息,请参阅 SQL Server 2005 联机丛书。
若要手动将 .rdlc 转换为 .rdl 文件格式,请执行下列步骤:
确定要与 .rdl 文件一起使用的数据源。可以使用 SQL Server 关系数据库、Analysis Service 多维数据库、Oracle 数据库或任何其他支持的数据源。该架构必须与用来创建原始 .rdlc 报表布局的架构相同。
使用 .rdl 文件扩展名重命名 .rdlc 文件。
在 SQL Server 2005 的 Business Intelligence Development Studio 中,创建或打开用来包含此报表的报表服务器项目。
在“项目”菜单上,单击**“添加现有项”**。选择第一步中创建的 .rdl 文件并将其添加到该项目中。
在解决方案资源管理器中,打开刚刚添加到该项目中的 .rdl 文件。报表定义将在设计模式下打开。您应会看到下列选项卡:“数据”、“布局”和“预览”。单击**“数据”**,在数据视图中打开此报表。
在数据视图中,选择第一个数据集,然后单击编辑按钮 (...),如下图所示:
在“数据集”对话框中,单击数据源名称旁边的编辑按钮 (...)。
更新连接信息。应替换连接字符串,以便报表连接到要使用的数据源。可能需要更新数据源类型、服务器、身份验证选项和数据库选择。
单击“运行”(!),验证数据源是否返回所需的数据。
重复上述步骤,修改此报表中使用的任何其他数据源。
预览此报表以验证数据是否按预期形式合并到报表布局中。若要预览此报表,请单击“预览”选项卡。
另请参见
概念
部署报表和 ReportViewer 控件
将 ReportViewer 配置为进行本地处理