比较SQL Server Reporting Services和Crystal Reports

时间:2020-03-06 15:05:31  来源:igfitidea点击:

使用哪种Crystal Reports和SSRS(SQL Server Reporting Services)更好?

解决方案

根据我的经验,Reporting Services更好。这是一个更好的环境,但是所有连接(数据源)中的最佳连接都与报表分离,并且可以共享。这样可以简化环境之间的部署。

我同意@Carlton的部分原因是他描述的原因。我还认为,报表服务是一种更成熟的产品(即使Crystal Reports出现的时间更长了)。测试和部署模型非常有用,并且内置的跟踪报告使用情况的功能非常有帮助。

我还发现在Reporting Services中设计报表要容易得多。Microsoft已经学习了如何构建良好的IDE,而Crystal IDE似乎一直都是事后的想法(尽管这比过去的情况要好得多)。

编辑:添加的想法
我还认为,在Windows商店中,SSRS提供了与OS和SQL Server的各种完美集成。我们可以很轻松地依靠SQL程序集在SSRS中重用内置代码,并且与Active Directory安全模型的集成使保护报告非常容易。

我们可以通过包括3个DLL文件来使用Reporting Services部署应用程序。这是一个巨大的好处。 (注意-我们必须从GAC获取3个DLL文件之一。)

使用Crystal Reports,我们必须在将运行该应用程序(网站或者客户端应用程序)的每台计算机上安装运行时。

Reporting Services具有大多数人需要的所有功能,并且部署更加容易。除非有必要,否则我永远不会使用Crystal Reports。

一方面,Crystal Reports充斥着大量昂贵且夸张的驴子便便,另一方面,SSRS实际上履行了CR营销的所有承诺,而且它是免费的。

我对CR的蔑视源于多年不得不使用这种可怕的东西。当我可以向我们提供诸如Clubing the Crystal Dodo或者Crystal Reports Sucks Donkey Dork之类的参考文献时,确实没有必要详细说明CR的完全可恶性(虽然不那么有趣,但更具有文化素养并带有技术细节)。

自由?!是的。我们甚至不必购买MS SQL Server即可使用高级服务安装SQL Express。可通过下载获得该文件,其中包括SQL Server Reporting Services。尽管SQL Express可以支持的并发用户数受到限制,但以下观察结果很明显:

  • 作为SQL Express的一部分获得的SSRS许可证仅要求将其部署为SQL Express的一部分。没有禁止与其他数据源建立连接或者要求报表从SQL Server获取数据的操作。
  • 上面提到的SSRS版本对用户连接没有固有的限制。所有限制都强加在SQL Express数据库引擎上。
  • SSRS使用ADO.NET,它开箱即用地包含Oracle,Jet(Access),OLEDB和ODBC的驱动程序

因此,我们可以将免费版本的SSRS连接到可以连接ADO.NET(包括(例如)MySQL)的任何后端。罗里(Rory)在下面的评论中告诉我,"不支持"。是的,但是我在许可证中找不到任何禁止它的内容,尽管驱动程序不是由SSExpress提供的,但是它们肯定是由大多数版本的Visual Studio提供的,我们可以在安装工具包中提供它们。这可能不是明确支持的配置,但是怎么办?即使我们确实拥有完整的MSSQL许可证,微软还是会要求我们帮助与第三方数据库进行对话(这很奇怪)。

我在工作中广泛使用SSRS来处理面向内的报告以及嵌入到ASP.NET应用程序中的面向外的报告,ASP.NET应用程序为大量付费客户提供局级服务。在我们的情况下,后备存储是Microsoft SQL Server 2008的许可副本,但是这与我们的报告解决方案的技术优点无关。

Crystal Reports声称支持一长串功能,但是这些功能不起作用,或者如果我们想要五个以上的用户,则需要昂贵的许可证。我们甚至无法相信CR能够正确执行SQL。从1 = 0的SOMETABLE处的SELECT COUNT(*)应该产生的结果为零,但它产生的结果为1. 内置的查询引擎有缺陷,一个将大量业余爱好者可以免费做的事情弄糟的团队(例如MySQL),没有希望从他们的代码中获得任何我们所描述的性能。

而且他们没有。邪恶的事情像无底的存储桶一样泄漏内存,如果我们使用SQL性能分析工具,我们会发现它效率极低。

至于所谓的支持,我可以亲自证明对话框调整大小的错误在首次公开记录后数十年未得到纠正。如果我们拿出信用卡并支付要求的勒索赎金(我也希望获得丰厚的酬金来支持这种恐怖),我们会发现自己正在与一个声称自己的名字叫大卫的人谈话,但莫名其妙地发音为" Dah-feet",甚至谁都不了解问题,更不用说答案了。

SSRS的支持情况非常相似,但是它实际上可以工作,因此我们实际上并不需要太多。

另一方面,SSRS可以完成CR声称的所有工作。它不是没有bug,但是令人愉悦的是,它们很少,并且它们很少能存活超过一个发布周期。

SSRS设计器UI托管在Visual Studio IDE中。它以典型的Microsoft风格进行了有吸引力的呈现,但不仅如此,它还经过深思熟虑,并结合了传统报表设计者的一些简单但基本的偏离。例如,要显示表格数据,我们要定义一个表格,而不是摆弄各个文本框。因此,我们不必费力地将它们对齐,而在其上放置边框是一件琐碎的样式表练习。

SSRS实际上可以完成CR所声称的所有事情,它价格便宜,有大量可靠的技术文档,旨在进行扩展(也有文档),并且我们可以将其连接到可以获得ODBC驱动程序的任何内容。这是没有道理的。

SSRS的一些缺点

  • 如何绑定页面页眉和页脚中的字段并不明显。
  • 据我所知,不可能相对于页面底部进行定位。对于某些类型的报告,这是一个真正的问题,对于我来说,这是没有解决方法的。
  • 交叉表中不支持expando水平汇总。
  • 没有直接支持报表的页眉和页脚。在报表布局的顶部和底部使用Rectangle对象,并适当设置分页符属性。或者使用子报表。抱怨这件事的人显然并没有很努力。
  • 缺少对重叠的组间隔的支持(CR分组系统可以做到这一点)UPDATE SSRS 2008 R2现在支持此功能。它埋在分组编辑对话框中。查找"组变量"并阅读。

实际上,看起来重叠的组也可以使用SSRS2005来完成,尽管我从来不知道。我想知道有没有人破解过底部定位问题?

我们是否考虑过替代方案?如果我们想使用Crystal Reports的功能但又不想花那么多钱,可以看看Crystal-Clear,它也是一种基于Java的报告工具,也支持Crystal Reports模板。它带有一个GUI设计器,并且每个系统都可以配置数据源。 (几乎像ODBC一样,我们只需为连接设置一个名称,然后在系统上配置该连接。)

伙计...我的公司有很多水晶报告...而在那之前的公司也有很多。从8.5版到11.5版。可以这么说,他们已经把脚踩在门上了。我认为CrystalReportViewer有点废话,但它确实起作用(大部分情况下)。

阅读了一些答案后,我将为下一个报告项目切换到SSRS!文字在墙上... MS将从VS中删除Crystal并替换为SSRS。唯一会吸引的是当MS开始为其充电时。

编辑:今天与SSRS纠缠在一起,看起来很有希望。我必须说设计师正在习惯一些... CR设计师在易用性方面取得了突破。我们可以说这是为程序员而设计的,因为CR适用于报表设计人员。

EDIT2:SSRS确实不能满足我的报告需求。当我们要预览并且没有参数提示可用于独立版本时,设计报告很糟糕。有没有更好的方法来设计它们……最好不是在VS中?

我感觉自己像是一个火星人,在Crystal Reports上拥有广泛而积极的(但有时是复杂的)经验,现已完全集成到我们的用户界面(VBA)中,在该用户界面中,所请求的报告参数和过滤器透明地从用户界面继承...

如果我们正在考虑使用SSRS,并且担心它是"免费"的,但是我们需要购买和购买额外的SQL Server许可证或者分发SQL Express,那么我们可能会对Data Dynamics报表感兴趣

它提供了SSRS中的所有功能,并添加了主报表,主题,日历数据区域,数据可视化(数据栏,迷你图,Iconset,ColorScale等),完整的对象模型,以实现最大的编程灵活性,免版税的最终用户报表设计器,条形码报告项目,Excel模板导出和数据合并等等。我们可以从Data Dynamics(现为GrapeCity)下载试用版,并以少量报告进行尝试,我们不会感到失望。

我都用过了,我会在已经说过的话上加上两点:

  • 对于简单的内容,我建议默认使用SSRS。水晶有点肿和古怪。
  • Crystal可以轻松导出为MS Word格式(.doc)。根据我的经验,客户经常希望这样做。
  • 如果格式化很重要,Crystal可能会更好。例如,SSRS报告在一个文本框中最多只能包含一种类型的文本。意思是说,报告顶部的注释不能同时包含斜体和普通文本。水晶可以做到这一点:

注意:此报告包含从开始日期到结束日期(包括那些日期)的数据。

SRSS不能(没有多个重叠的文本框)。我曾经给我一个20页的单词文档,然后将其转换为包含十几个图形和表格的数据的报告。我从SSRS开始,但是意识到在Crystal中,我可以直接从单词中复制并粘贴报告的硬编码位,并带有彩色标题和所有内容,从而节省了工作时间。因此,Crystal在许多方面确实有一个更好的"设计师"。

更新:
显然,这两个问题已在当前的SRSS中修复。有人愿意对此发表进一步评论吗?

由于该线程突然弹开,我将加两分钱。在版本7和8天中,我不得不使用Crystal大约三年。我讨厌每一分钟。我看过一些较新的版本,但仍然不喜欢它。

我非常不喜欢它,以至于我不敢这样说:根据我的经验,Crystal比SSRS更适合复杂的报告。我和我的一位同事拼命地尝试让一个中等复杂的报表布局在SSRS中工作并放弃了。我对产品的印象-只是我的意见,请注意-是它还没有准备好迎接黄金时段。

Crystal会让我们讨厌生活并寻找另一份工作,但是有一个原因使它如此无处不在:它行之有效。

我已经用了两年了。
Crystal Reports收费过多,因此我会尽可能使用SSRS。
但是,SSRS不支持Firefox或者任何其他浏览器,仅支持IE,这是一个问题。

Crystal中的报表看起来更好,导出功能更强大,用户希望良好地导出到Word。
如果我们是Java程序员,那么我将使用Jasper Reports,它是免费的,并且使用Java语言实现功能。

我现在和他们一起工作,并肩并肩地看到了他们。水晶一直很好,但多年来费用昂贵。它笨拙,但是我们已经习惯了它并且熟悉了界面。我不在LAMP环境中工作,这家公司与MS Dynamics和MAS一起使用了一些相当大的客户。

我喜欢不必担心SSRS的客户端安装。分发要容易得多,并且共享数据源和报告模型的情况良好。

就浏览器而言,我已经在Firefox中看到了完美呈现的SSRS 2008仪表。我已将那些量规导出到Excel,没有问题。我已经在有和没有MOSS的情况下将报告部署到了手机上。使用Windows身份验证来部署报告以及隐藏报告的功能非常棒。 VS 2005和更高版本中的报表查看器对象很不错。

我一直使用Crystal Report直到版本10,并且一直在与ASP.NET应用程序一起成功完成我想要的工作。它在Web上的输出确实非常像WYSIWYG(所见即所得),并且向Excel和PDF的导出也很准确。打印也非常正确。

最近,我在SSRS 2005上工作了大约一年,并且一直生活在目睹如此之多的不足,这些不足也必须立即解决。 SSRS Web输出随浏览器和diff分辨率的不同而有很大差异,并且很容易使开发人员感到不适。此外,报表查看器的滚动问题会使最终用户很早就生气,因为它基于使用IFRAME的HTML。 (注意:Crystal 13在Web查看器中使用IFRAME,这会遇到零星的文本包装和重叠问题)。出口根本不好。我们无法在单元格中向左或者居中对齐图像,也无法为图像指定背景色。我们无法居中对齐完整报表主体。可能的话,我已经使用渲染的HTML玩了几个小时,并且想出确切的替代方法可以使之正常工作,但是我想这些简单的修补程序对于SSRS开发人员是未知的,因为大概他们从未使用过SSRS。

此外,在Web应用程序中,需要为现成的参数承担不良的UI。我只是简单地将其完全删除,而在ASPX页面中创建它的成本使我考虑在DataGrids中设计表格报表,而不是使用ObjectDataSource和数据库分页技术。我们无法根据需要布置参数。参数部分中的错误会回传完整的报告,而无需进行任何更改。使用分组进行分页是有技巧的,但是在完整的数据集上排序失败。对于中级到高级UI需求的每一点,SSRS花费大量时间弄清楚根本不可能。由于SSRS用户较少,因此在线社区对于简单的问题没有好的解决方案。不要忘记SSRS的优点是它的部署,内置的通知,缓存和配置方面,但没有UI可以胜任。

BOTTOMLINE是,由于Microsoft支持团队在不得不说"对不起!"的情况下,反应迟钝,我看到SSRS令我们感到沮丧。一个月后,现在不行。 SSRS 2008也没有立即解决许多此类问题。而且,升级到SSRS'08也意味着后端平台的完整迁移。请记住,使用软件的次数越多,随着时间的推移它就会变得越成熟,Crystal始终是一个更好的选择,因为SSRS很快就会自己花费很多时间来修复错误。

我已经使用过(Crystal Reports 2008和SSRS 2008),因为我没有及时注意到此线程。

除了使用CR设置要容易一些之外,我没有注意到CR至少可以与SSRS相提并论的单个功能。是的,Crystal Reports确实很糟糕。

在我看来,CR中最糟糕的部分是IDE。但是,还有其他杀手级功能,例如糟糕的SQL性能和可怕的图形(至少在VS 2008附带的CR版本中)也是值得注意的"杀手级"功能。

我想知道为什么没有人提到CR的一个大问题,那就是它在源代码控制或者团队环境中只会失败。如果我错了,请指正我,但对于任何报表差异工具,我真的都很努力。有一个(大约一年前发布的),但是它表现不佳不是因为它不好,而是(我猜)是因为CR只是没有正确地显示报告结构或者其他东西。笨拙和错误。我什至尝试编写自己的.rpt比较器。

这不仅仅与团队发展有关。即使只有一个开发人员,维护报表版本也是一个噩梦,而且如果客户决定添加一些内容或者更改几种颜色,那么我们现在就被迫跟踪每个文本框,因为绝对无法找出更改。

RDL格式更加干净和开放。这可能是一个相当大的优势。

人们,请参考我们正在谈论的版本!

例如,VS2008内置的免费RDLC报表(与SQL Server 2005 Reporting Services相同)不支持页眉和页脚中的绑定字段,这是一项基本功能!

现在,我正在将一个庞大的报告从VS2008 Reporting / RDLC 2005转换为Crystal Report 2008 Basic(随VS2008一起提供),因为它没有此基本功能。

我相信Reporting Services 2.0 / RDLC 2008(Visual Studio 2010附带)以及更好的,最新的Reporting Services 3.0 / RDLC 2010(在带有高级服务的SQL Server 2008 R2 Express中免费提供)是更好的SSRS解决方案。

具有高级服务的SQL Server R2 Express(免费)
http://www.microsoft.com/express/Database/InstallOptions.aspx

目前,我正在为Reporting Services 3.0 / RDLC 2010进行概念验证,并将发布结果。

报表服务(SSRS / RDLC)总是更容易工作,但要付出代价却容易。对于简单报告,请始终选择SSRS / RDLC。对于具有主从,页面控制等功能的复杂报表,请使用最新的SSRS / RDLC版本(2008、2010)以及Crystal Reports对这些情况进行PoC。

对于那些正在比较旧的Crystal Reports XI和Reporting Service 1.0的用户,请参阅此2005年文章:

段落数量不匹配