在Winforms中报告(免费||开源)替代Crystal Reports的选择

41

在我的winforms项目中,我正在寻找类似于Crystal Report的免费或开源解决方案,允许我打印和将DataSet的内容转换为PDF。有什么建议或想法吗?

我需要的是简单而快速的东西,对我来说,Crystal似乎非常慢。提前感谢。

我知道这个问题,但我觉得那里只有与Java相关的答案。

11个回答

21
我建议您使用fyiReporting已分叉并移动,现在截至2012年为止)工具来替换Crystal Reports。我使用过fyiReporting和Crystal,必须说我更喜欢fyiReporting(尽管他们的网站很糟糕)。
选择fyiReporting的原因:
  1. 如果您想替换Crystal,则已经习惯了报表设计器。FyiReporting有自己的GUI,就像Crystal Reports一样,用于创建和运行报表(您可以仅创建和分发报表而不构建应用程序)。
  2. FyiReports允许您将报表导出为PDF、Excel和mht(静态Web页面),只是其中之一。
  3. FyiReports基于xml,因此报表定义可以保存在数据库中,并随时进行修改。
  4. 如果您正在使用.Net,则FyiReporting具有Web和Windows Forms控件,可嵌入应用程序中的报表(类似于Crystal Reports)。我不太确定Java是否可以,因为我是一名.Net开发人员。
无论如何,请试用FyiReports。

这看起来很有前途,除了他们自2009年以来没有更新过,有人在asp.net 4.0上取得了成功吗? - sagescrub
1
刚试用了fyiReporting,感觉不太满意。文档缺乏,对ASP.Net控件的支持也很难令人信服。只好放弃它,重新开始寻找... - Encryption

20

你可以自己开发。在我们的项目中,我正在摆脱Crystal Reports,因为目前,我们无法更新旧报告而不升级每个人到XP,因为我们是使用VS 2008进行开发,而新版CR不支持Win2K。此外,CR需要大约30秒才能构建和加载报告,我的报告几乎是瞬间完成的。

我编写了自己的XML序列化器,并构建了从List<T>、DataTables等填充的自定义对象,将其序列化,加载到XmlDocument中,附加XSLT样式表,然后将其写入包含该XSLT文件和任何CSS和图像的目录中。XSLT文件在用户在浏览器中打开XML文件时将其转换为HTML/CSS。

我还可以将其加载到WebBrowser控件中,并使用免费的PDF库之一将其转换为PDF并打印。有关更多详细信息,请参见这些线程:


这不需要花费很多精力吗?为什么不将你的代码开源呢? - user734028
@user734028:这是9年前的事了,我已经做了3-4个工作了,所以我不知道它在现代.NET中是否能正常工作,但任何想使用我提供的序列化程序的人都可以自由使用。我再也无法访问其余的源代码了,而且XSLT是专为一个医疗诊所的报告而设计的。 - Chris Doggett

8

7
你可以使用Visual Studio提供的RDLC文件来定义报表布局。您可以使用ReportViewer控件查看rdlc。
两者都是Visual Studio开箱即用提供的。

3
如果你正在使用Sql Server(任何版本,包括express),那么你可以安装Sql Server Reporting Services。它允许通过Visual Studio插件或浏览器控件创建报表,并且可以将报表导出为多种格式,包括PDF。你可以通过包含的winforms报表查看器控件查看报表,或者利用所有内置生成的Web内容。
如果你习惯在Visual Studio中使用数据集,则学习曲线并不陡峭。

1
这种方法的问题在于客户端的所有权限都必须在SQL Server Reporting Services中设置,如果客户端喜欢使用人类曾经设计过的最疯狂的网络配置,它很少能正常工作。 - ThorDivDev

2

1

1

1

0

BIRTEclipse商业智能和报告工具是开源的。

BIRT是一个基于Eclipse的开源报告系统,可与您的Java/J2EE应用程序集成以生成引人入胜的报告。BIRT提供核心报告功能,如报告布局、数据访问和脚本编写。


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