Microsoft.Reporting.*与XML/XSLT的区别

6
我想在一个.NET应用程序中添加报表功能。我的数据源只是应用程序的数据模型,即一堆对象,这些对象可能是从任何地方生成或加载的(不一定来自数据库)。
最初的计划是从这些对象生成报表数据XML文件,然后使用XSLT将其转换为XHTML报表文件。然后可以使用浏览器控件在应用程序中显示报表。
但是,我注意到存在Microsoft.Reporting.*命名空间,并且从我尝试过的情况来看,其中的类和控件也可以处理我的报表。使用这个是否是个好主意?与XML / XSLT方法相比,它会节省工作吗? Microsoft Reporting框架的限制(如果有)可能会遇到什么问题?
4个回答

7

需要考虑以下几点:

1)报告服务是Sql Server的一部分,因此如果您选择这条路,可能会有额外的许可问题。

2)报告服务可以提供Web页面,或者在WinForms中使用完整的分页、排序、子报告、总计等功能。这在XSL中非常困难。它也可以很好地与打印机配合使用。

3)报告服务配有所见即所得的编辑器来构建报告。它并不完美,但比手工制作要容易得多。

4)使用XSL创建XHTML可能会对性能造成真正的影响。XSL作用于整个XML Dom,如果您处理多页报告,则可能是一个大文档。我希望报告服务能够更快地工作。

5)报告服务可以利用整个.Net,因此您可以免费获得许多其他功能。

综上所述,使用报告服务将节省您的时间,除非您的报告要求非常简单。不过,它可能没有那么有趣。


我有一个小的测试应用程序,它可以从对象列表生成报告,并且只需要先安装 ReportViewer.exe 可再发行程序包。看起来报告服务并不与 Sql Server 相关联。 - Wim Coenen

4

我大部分同意MrTelly的评论,但以下是一些例外和补充:

  • 除非你对XSLT很糊涂并且你的报告数据非常庞大(100+ MB - 请注意我说的是用于报告的数据而不是源数据),否则性能不太可能成为一个重要问题。我们构建了一个XML/XSLT报告系统,它可以将.NET数据集转换为即时报告,并且如果使用正确编写的XSLT,则性能大多数情况下都在子秒级别(对于大型数据集可能需要更长时间,但对于Web应用程序来说并不可怕)。

  • 使用XML/XSLT解决方案的报告布局基本上是无限制的,而Reporting Services则受限于RDL(Microsoft的报告定义语言)中的结构。如果您需要比标准报告结构更复杂的内容,那么使用Reporting Services会让人沮丧。


1

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接