6

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

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

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

4

4 回答 4

7

有几件事需要考虑。

1) Reporting Services 是 Sql Server 的一部分,所以如果你走这条路,你可能会遇到额外的许可证问题。

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

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

4) 使用 XSL 创建 XHTML 可能会影响性能。XSL 适用于整个 XML Dom,如果您正在处理多页报告,那可能是一个大文档。我希望 Reporting Services 能够更快地工作。

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

考虑到所有这些,使用 Reporting Services 将节省您的时间,除非您的报告要求非常简单。虽然它不那么有趣。

于 2009-01-26T11:30:06.093 回答
4

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

  • 除非你对你的 XSLT 很傻,而且你的报告数据是巨大的(100+ MB——我说的是提供报告的数据而不是源数据),否则性能不太可能是重要的问题。我们已经构建了一个 XML/XSLT 报告系统,它采用 .NET 数据集并将它们动态转换为报告,并且使用正确编写的 XSLT,性能主要是亚秒级(对于大型数据集,它可能更长,但对于 Web 应用程序来说并不可怕) .

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

于 2009-01-28T14:03:09.217 回答
1

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

于 2009-01-28T05:03:25.920 回答
0

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

使用 ReportViewer 从 XML 文档构建报告

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

于 2012-10-16T14:12:50.820 回答