如果获取了 SQL Server 2008 的许可副本,则可以将 .rdlc 文件转换为 .rdl 文件,用于发布到 Reporting Services 报表服务器。
比较 RDL 和 RDLC
RDL 和 RDLC 是由称为报表定义语言的 XML 架构定义的。用于两种文件格式的架构是相同的,可在以下网址找到:https://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition。不过,这两种文件存在以下差异:
- RDL 的 <Query> 元素包含查询或命令信息,由报表服务器用于连接到报表的数据源。 
- 在 RDLC 文件中,<Query> 元素是可选的。**“ReportViewer”控件会忽略此元素,因为“ReportViewer”**控件在本地处理模式下不执行任何数据处理,但使用宿主应用程序提供的数据。 
如何将 .rdlc 文件转换为 .rdl 文件
将 .rdlc 文件转换为 .rdl 文件需要重新创建数据源和查询信息。确保所选择的数据源架构与原始报表中使用的数据源架构相同或在结构上相同。如果架构不同,则报表布局可能对要使用的数据源无效。如果希望使用不同的架构,从头开始重新创建报表会比转换报表更容易些。
满足下列条件时,.rdlc 文件将自动转换为 .rdl 格式:
- 通过数据表提供报表数据。 - 提示 - 如果 .rdlc 文件使用业务对象中的数据,则必须手动转换 .rdlc 文件。报表服务器不具有处理报表中的业务对象的能力。若要继续将业务对象用于服务器报表,请考虑实现自定义数据处理扩展插件。有关更多信息,请参见 SQL Server 联机丛书中的Implementing a Data Processing Extension。 
- .rdlc 文件所使用的数据源映射到报表服务器上安装的数据处理扩展插件之一(例如,如果数据源是 SQL Server 数据库,则可以使用报表服务器上默认安装的 SQL Server 数据处理扩展插件)。 
- 不需要修改查询和数据源连接信息。 
若要自动转换 .rdlc 文件,请将文件扩展名重命名为 .rdl,然后将 .rdl 文件发布或上载到报表服务器。可以使用 SQL Server 2008 或以上版本中的 Business Intelligence Development Studio 发布 .rdl 文件。有关创建报表项目、发布报表、上载文件的更多信息,请参见 SQL Server 联机丛书。
若要手动将 .rdlc 转换为 .rdl 文件格式,请执行下列步骤:
- 确定要与 .rdl 文件一起使用的数据源。可以使用 SQL Server 关系数据库、Analysis Service 多维数据库、Oracle 数据库或任何其他支持的数据源。该架构必须与用来创建原始 .rdlc 报表布局的架构相同。 
- 使用 .rdl 文件扩展名重命名 .rdlc 文件。 
- 在 SQL Server 的 Business Intelligence Development Studio 中,创建或打开用来包含此报表的报表服务器项目。 
- 在**“项目”菜单上单击“添加现有项”**。选择第一步中创建的 .rdl 文件并将其添加到该项目中。 
- 在解决方案资源管理器中,打开刚刚添加到该项目中的 .rdl 文件。报表定义将在设计模式下打开。 
- 在**“视图”菜单中,选择“报表数据”**。 
- 在**“报表数据”窗口中,选择第一个数据源,然后单击“编辑”**按钮。 
- 在**“数据源属性”对话框中,单击数据源名称旁边的“编辑”**按钮。 
- 更新连接信息。应替换连接字符串,以便报表连接到要使用的数据源。可能需要更新数据源类型、服务器、身份验证选项和数据库选择。完成后,单击**“确定”**关闭对话框。 
- 在**“报表数据”窗口中,选择与所编辑的数据源关联的第一个数据集,然后单击“编辑”**按钮。 
- 在**“数据集属性”对话框中,单击“查询设计器”**。 
- 单击**“运行”**验证查询字符串是否返回所需的数据。 
- 重复上述步骤,修改报表中使用的任何其他数据集和数据源。 
- 预览此报表以验证数据是否按预期形式合并到报表布局中。若要预览报表,请单击**“预览”**选项卡。