0

我是在 asp.net 中报告的新手,无法让事情对我有好处。基本上,我对这里所说的内容做了一个演示。一切正常,它在我的本地系统上生成了报告。但是,没有在网络服务器上工作。

现在,我在这里感到困惑: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,什么时候不应该。上一个问题何时在 RDL 报告上使用 RDLC?.,但我在我的场景中寻找一个更简单的解释。

4

2 回答 2

3

RDLC


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

RDL


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

概括


  1. 如果您打算不经常使用简单且较小的报告,请考虑客户端报告 (rdlc)。
  2. 如果您想设置专用和中央服务来满足各种应用程序用户的报告要求,请考虑 (rdl)。这可以根据需要进行扩展、监控、优化和横向扩展。
于 2013-07-29T20:52:57.680 回答
1

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

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

于 2013-07-29T11:04:18.397 回答