您将使用什么报告工具?

我需要一个通过我的C#应用​​程序处理屏幕和打印报告的工具。

我正在寻找简单,标准和强大的。

我需要能够让用户能够使用我自己的GUI选择要显示的列,格式化等,并根据他们的选择动态构建报告。 Crystal不适合这里的帐单,因为无法动态添加列(并且无法动态调整列宽)。

我正在考虑在我的应用程序中使用带有WebBrowser控件的HTML,但我对打印和打印预览几乎没有控制权。

另一个选择是转到.NET 3.5(我使用2.0)并使用XAML和Flow Documents。

你会用什么?

我们使用SQL报告服务。 HTML报告有它们的位置,但你不能非常控制格式化。

SQL报告服务摘要:

好处:
基本版是免费的
包含在SQL Express中
许多导出选项pdf,html,csv等
可以使用许多不同的数据源
公开各种方法的Web服务
SQL标准editon包括一个报表生成器组件,允许用户创建和共享自己的报表
很多用于查询格式化的function等
计划选项
可扩展性导入.net框架用于自定义function
熟悉的微软环境

缺点:
设置的额外事情
应用程序和报表服务器之间的无缝身份validation可能会很麻烦,具体取决于您的设置
一点点学习曲线虽然不太难以接受
报表模型创建者需要一些工作并且不会自动生成az字段

我听说过DevXpress的好东西,所以值得研究一下。

大约5年前我使用过Crystal并且记住它是一种痛苦的设置并且是昂贵的许可证。

查看Studio 2008 / .NET 3.5中的Report Viewer内容

这个惊人的网站有完整的独家新闻 : GotReportViewer

这是一个很好的内置报告系统,可以显示报告和打印。 它并没有像Crystal或SQL Reporting Services那样完整。 如果你需要的只是一些轻量级的报告,你就无法击败价格。

Crystal =大占地面积,庞大的部署,快速,良好的设计师和支持MS ReportViewer =占地面积小,速度慢,设计师不好,支持..好吧,不是那么该死的很容易在reportviewer之后搜索,一个名字都用……叹息。

我们在这里使用ActiveReports.net 。 他们很好,并且倾向于很好地完成工作,但我不确定它们是否符合您对“动态”的定义。 但你几乎可以让他们通过代码做任何事情。

我目前正在考虑将DevXpress XtraReports作为CR的替代品。 到目前为止,我喜欢我所看到的。

SQL Reporting Services可能不够灵活,因为您没有真正获得深层次的代码操作。

活动报告可以让你进入绑定事件并且几乎可以做任何你想要的事情,但是有一些活动报告的小错误(比如无法绑定到数据表的默认视图)会让它变得很麻烦。 除此之外,它非常灵活。

XtraReports很棒,但它们比Active Reports贵很多。 话虽如此,他们的支持非常棒,而且报告包很坚固。 如果可能的话,我会考虑为他们分配现金。