Microsoft.Reporting。* vs XML / XSLT

时间:2009-01-26 10:47:35

标签: xml xslt reporting-services reporting

我想向.NET应用程序添加报告功能。我的数据源只是应用程序的数据模型,即可能是从任何东西生成或加载的一堆对象(不一定是来自数据库)。

最初的计划是从这些对象生成报告数据XML文件,然后使用XSLT将其转换为XHTML报告文件。然后,可以使用浏览器控件在应用程序中显示该报告。

但是,我注意到存在Microsoft.Reporting。*命名空间,并且根据我的尝试,似乎那里的类和控件也可以处理我的报告。改为使用它会是个好主意吗?与XML / XSLT方法相比,它是否可以节省工作量?我可能会遇到哪些限制(如果有)的Microsoft报告框架?

4 个答案:

答案 0 :(得分:7)

需要考虑的几件事情。

1)Reporting Services是Sql Server的一部分,因此如果您走这条路线,可能会有额外的许可证问题。

2)Reporting Services可以提供网页,或者在WinForms中使用完整的分页,排序,子报告,总计等等 - 这在XSL中非常难。它也可以很好地与打印机配合使用。

3)报告服务附带一个WYSIWYG编辑器来构建报告。它无论如何都不是完美的,但比手工制作容易得多。

4)使用XSL创建XHTML可以实现真正的性能提升。 XSL适用于整个XML Dom,如果您正在处理多页报告,那么这可能是一个大文档。我希望Reporting Services的工作速度更快。

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

除非您的报告要求非常简单,否则使用Reporting Services可以节省您的时间。但它并不那么有趣。

答案 1 :(得分:4)

同意MrTelly的大部分评论,并附有以下例外和补充:

  • 除非你对你的XSLT感到愚蠢,而你的报告数据是巨大的(100+ MB - 请记住我在谈论提供报告的数据而不是源数据),性能不是'这可能是一个重大问题。我们已经构建了一个XML / XSLT报告系统,该系统可以获取.NET数据集并将其转换为动态报告,并且通过正确编写的XSLT,性能大多是亚秒级(对于大型数据集,它可以更长,但对于Web应用程序来说并不可怕)

  • 使用XML / XSLT解决方案的报表布局基本上是无限制的,使用Reporting Services,您只能使用RDL(Microsoft的报表定义语言)中的构造。如果您需要比标准报告结构更复杂的东西,Reporting Services将会令人沮丧。

答案 2 :(得分:1)

Data Dynamics ReportsActiveReports(以及其他第三方.NET工具)也可以直接报告对象并拥有适合开发人员的许可政策。

答案 3 :(得分:0)

似乎您也可以从对象生成xml,然后从该XMl创建本机ReportViewer报告

使用ReportViewer从XML文档构建报告

http://www.c-sharpcorner.com/UploadFile/mahesh/XmlReports04182007115639AM/XmlReports.aspx