SSRS 是一个基于服务器的报告系统,而 Telerik Reporting 是纯粹的嵌入式报告工具。您应该将 Telerik Reporting 与本地处理模式下的 SSRS ReportViewer 控件进行比较,而不是整个 SSRS 系统,除非您也打算使用 SSRS 服务器。我认为这是第一个要回答的问题:您应该评估使用报表服务器的利弊。
选择嵌入式报告的通常原因是避免服务器依赖性。如果您是应用程序开发人员并将您的应用程序部署到多个站点,则除了您的应用程序之外,您还必须支持多个 SSRS 安装。Telerik 报告编译为一个 dll,您可以轻松地将其与您的应用程序一起部署。
一般来说,基于服务器的 SSRS 比 Telerik 报告功能更丰富,尤其是 SSRS 2008 tablix很方便。我认为 Telerik Reporting 仅从 2009 年第一季度开始支持交叉表。它不支持向下钻取等交互式功能。您应该看到Telerik 报告的已知限制以及 SSRS 2008 与 SSRS 2005 相比的实质性改进。另一方面,本地模式下的 ReportViewer 仅了解 RDL 2005,因此您仅限于 SSRS 2005 功能。
现在,更容易查看您的要求。
从自定义 ASP.NET 应用程序生成报告
- SSRS 服务器:为远程处理配置的 Microsoft ReportViewer Web 控件查看由 SSRS 服务器处理和呈现的报告
- SSRS 本地模式:Microsoft ReportViewer 处理并呈现本地 RDL 2005 报告定义
- Telerik:Telerik ReportViewer 处理和呈现报告。报告可以部署为嵌入所有资源(图像等)的单个 dll。这是 Telerik 报告的强项。
计划报告
- SSRS:服务器端功能,本地模式不支持
- Telerik:不支持
按需或按计划发送电子邮件报告
- SSRS:服务器端功能,本地模式不支持
- Telerik:不支持
PDF 输出
- SSRS:服务器模式下的各种输出格式。在本地模式下,ReportViewer 仅支持 Excel 和 PDF
- Telerik:各种输出格式,包括 pdf
向下钻取 html
- SSRS 服务器:通过参数传递、报表元素中的静态 url 向下钻取到子报表(另一个 RDL 报表定义)
- SSRS 本地模式:静态 URL,但没有交互功能
- Telerik:静态网址,但没有交互功能
在将数据集传递给渲染引擎之前,在 C# 中对数据集进行按摩
- SSRS 服务器:支持 RDL 中定义的报表数据集、OLEDB 兼容数据源、XML 数据、集成服务包和标准 .NET 提供程序
- SSRS 本地模式:这句话直接来自 Lachev 的书(第 525 页):
ReportViewer 在本地处理模式下支持两种类型的数据源:包含 ADO.NET DataTable 对象的数据集或业务对象的可枚举集合。ReportViewer Windows 窗体还支持绑定到 System.Windows.Forms.BindingSource 和 System.Type 的实例。报表查看器 Web 服务器支持绑定到 System.Web.UI.IDataSource 的实例。
- Telerik:任何 DataSet 或 DataView 都可以在运行时设置为数据源
鉴于您的关键要素,并假设您在公司防火墙内进行内部报告,我绝对建议使用 SSRS 服务器。尝试获取一个 SQL Server 2008 许可证或使用 SQL 2008 Express 作为报告服务器。但是,如果您绝对必须使用嵌入式报告,Telerik 可能是更好的选择,至少在 Microsoft ReportViewer 在本地模式下支持 RDL 2008 之前是这样。这个新的 ReportViewer 应该随 Visual Studio 2010 一起提供。
对于 SSRS,我建议阅读 Teo Lachev 的Applied Microsoft SQL Server Reporting Services。示例章节可在本书的网站和Google 图书中找到。
Telerik Reporting 也有出色的支持。开发 Telerik 报告在很大程度上依赖于示例和支持论坛。
我还写过关于嵌入式报告和Telerik Reporting的博文。