ASP.NET报告,使用RDLC的内容,方式和时间

时间:2013-07-29 10:28:16

标签: c# asp.net reporting-services rdlc rdl

我是asp.net报道的新手,无法让这些东西对我有益。 基本上,我对所谓的here进行了演示。一切正常,它在我的本地系统上生成报告。但是,没有在Web服务器上工作。

现在,我有一个困惑:asp.net [VS 2010 - .NET 4.0],本地模式和服务器模式有两种报告模式。本地模式具有RDLC扩展,服务器模式具有RDL作为报告设计文件的扩展,并且它需要Sql Server报告以获得支持,另一方面,RDLC在客户端计算机上进行[它可能看起来是一个愚蠢的问题但是,是我的机器还是我的电脑而不是网络服务器,意味着我无法在网络服务器上部署和使用它。]

混淆的基础是我在我的网络托管上传了相同的演示项目并运行它。报表查看器控件显示完美且每件事情看起来都很好,但报表查看器工具栏的下方没有要呈现的实际报表。但是,与此同时,我能够完全正确地下载报告的PDF,XLS和DOC格式,并生成实际的行和列,这表明报告正在生成(条形图也包含在rdlc的设计,它也产生了)。我想这是因为Web服务器上没有安装Report Viewer库,也不知道如何呈现RDLC文件。

所以,这是实际问题:

我认为当您将RDLC作为报告文件格式时,可以在网络服务器上生成报告,或者我应该使用RDL吗?

如果我使用RDLC(本地报告)部署我的应用程序,当然在 Web服务器上,它会正常工作吗?是否可以在Web服务器上安装或获取报表查看器

我应该何时使用RDLC和RDL,何时不使用RDLC和RDL。上一个问题When to use RDLC over RDL reports?。,但我正在寻找一个更简单的解释。

2 个答案:

答案 0 :(得分:3)

RDLC


  1. 其客户端报告,报告随Windows应用程序或网络应用程序一起提供。
  2. 在可以导出报告的格式方面功能有限。
  3. 报告的数据处理和渲染消耗了托管报告的应用程序的地址空间,它可以是Windows或Web。如果您经常提取大量报告,这可能会导致性能问题。
  4. 这不需要任何单独的SQL实例或许可证。
  5. RDL


    1. 这是服务器端报告,报告在称为SQL Reporting Services服务的专用服务器进程中处理,输出将提供给应用程序或最终用户。
    2. 服务器报告旨在执行和扩展。
    3. 作为单独的流程/服务运行,需要SQL许可证。
    4. 提供导出为RDLC中不可用的多种格式
    5. 服务器报告是可扩展的产品。您可以包含自己的数据处理,安全性或递送扩展。
    6. 它使用开箱即用的订阅支持自动电子邮件传送和报告文件传送。
    7. 摘要


      1. 如果您不经常使用简单和较小的报告,请考虑客户端报告(rdlc)。
      2. 考虑(rdl)是否要设置专用和集中服务以满足各种应用程序用户的报告要求。这可以根据需要进行扩展,监控,优化和扩展。

答案 1 :(得分:1)

RDL和RDLC格式具有相同的XML架构。但是,在RDLC文件中,某些值(例如查询文本)可以为空,这意味着它们不会立即准备好发布到报表服务器。可以使用SQL Server 2008版本的报表设计器打开RDLC文件来输入缺少的值。 (您必须先将.rdlc重命名为.rdl。)

RDL文件与ReportViewer控件运行时完全兼容。但是,RDL文件不包含ReportViewer控件的设计时间依赖于自动生成数据绑定代码的一些信息。通过手动绑定数据,可以在ReportViewer控件中使用RDL文件。

注意:ReportViewer控件不包含用于连接数据库或执行查询的任何逻辑。通过分离出这样的逻辑,ReportViewer已经与所有数据源兼容,包括非数据库数据源。但是,这意味着当ReportViewer控件使用RDL文件时,控件将忽略RDL文件中的SQL相关信息。主机应用程序负责以ADO.NET DataTables的形式连接到数据库,执行查询并向ReportViewer控件提供数据。

参考:http://forums.asp.net/t/1173578.aspx/1

同时检查:http://dinesql.blogspot.com/2010/11/reporting-services-difference-between.html