将SQL Server Reporting Services与Crystal Reports进行比较

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

一方面,水晶报表是一堆昂贵而过度的驴友,另一方面SSRS实际上履行了CR营销所做的所有承诺 – 而且是免费的。

我对轻罪的蔑视源自多年来被迫使用可怕的事情。 当我可以给你参考像水晶Dodo的 水晶报告或水晶报告吸驴Dork (不是很有趣,而是更多的文学和技术细节certificate),这是完全没有意义的细节CR的绝对可恶。

自由?! 对。 您甚至不必购买MS SQL Server即可获取它 – 您可以使用高级服务安装SQL Express。 这是一个包含SQL Server Reporting Services的下载 。 尽pipeSQL Express在可支持的并发用户数量方面有限,但下面的观察结果是显而易见的:

  • 作为SQL Express的一部分获得的SSRS许可证仅要求将其部署为SQL Express的一部分。 没有任何禁止连接到其他数据源或要求报表从SQL Server获取数据。

  • 上述SSRS版本对用户连接没有内在限制。 所有限制都强加在SQL Express数据库引擎上。

  • SSRS使用ADO.NET,其中包括开箱即用的Oracle,Jet(Access),OLEDB和ODBC的驱动程序

因此,您可以将免费版本的SSRS连接到任何可以连接ADO.NET(包括MySQL)的后端。 罗里在下面的评论中告诉我,这是“不被支持”。 这是真的,但我找不到许可证中的任何东西,禁止它,而驱动程序不是由SSExpress提供的他们肯定由大多数版本的Visual Studio提供的,您可以将它们发送到您的安装工具包中。 这可能不是一个明确支持的configuration,但那又如何? 即使你有一个完整的MSSQL许可证,它会问一些期望微软帮助你谈一些第三方数据库(更不用说有点怪)。

我广泛使用SSRS工作,既面向内部报表,也面向ASP.NET应用程序中面向外部的报表,这些报表为大量付费客户提供局部服务。 在我们的情况下,支持存储是Microsoft SQL Server 2008的许可副本,但这是我们的报告解决scheme的技术优点。

Crystal Reports声称支持的function很多,但是如果您想要超过五个用户,那么这些function要么不起作用,要么需要昂贵的许可证。 你甚至不能相信CR来正确地执行SQ​​L。 SELECT COUNT(*) FROM SOMETABLE WHERE 1=0应该产生一个零结果,但它会产生一个结果 。 内置的查询引擎是有缺陷的,一个团队把一些业余爱好者可以免费使用的东西(例如MySQL)无法获得任何你所描述的代码性能。

而他们不。 这个邪恶的东西像一个没有底部的桶一样泄漏内存,如果你使用SQL分析工具,你会发现它是非常低效的。

至于所谓的支持,我可以亲自certificate,在第一次公开logging数十年之后,重新resize的错误没有得到修正。 如果你拿出你的信用卡,并支付勒索勒索赎金(我也希望英俊的工资,以支持这样的恐怖),你会发现自己说话的人声称他的名字是大卫,但莫名其妙地发音为“大脚”,谁甚至不明白你的问题,更不用说有一个答案。

SSRS的支持情况非常相似,但实际上它起作用,所以你并不需要太多。

另一方面,SSRS完成了CR所宣称的一切。 它不是没有缺陷,但是它们很less,而且它们很less能在一个释放周期中存活。

SSRSdevise器用户界面托pipe在Visual Studio IDE中。 它以典型的微软风格呈现出来,但是不仅如此,它还有相当深思熟虑,将传统报表devise师的几个简单而重要的变化结合在一起。 例如,要呈现表格数据,您需要定义一个表格,而不是单个文本框。 因此,您不必费力地将它们排列起来,并在其上放置边界是一个简单的样式表练习。

SSRS实际上完成了CR声称的所有事情,价格低廉,有大量可靠的技术文档,它被devise为扩展(也被logging),并且可以将它连接到任何可以获得ODBC驱动程序的东西。 这是一个没有道理的。

SSRS的一些缺点

  • 如何在页眉和页脚中绑定字段并不明显。
  • 这是不可能的(据我所知)相对于页面底部的位置。 对某些types的报告来说,这是一个真正的问题,对于这个问题,我可以想象没有任何解决方法。
  • 在交叉列表中不支持expando水平汇总。
  • 报表页眉和页脚没有直接的支持。 在报表布局的顶部和底部使用矩形对象,适当地设置分页属性。 或使用子报表。 抱怨这个的人显然没有很努力。
  • 缺乏对重叠组间隔的支持(CR分组系统可以做到这一点) 更新 SSRS 2008 R2现在支持这一点。 它被埋在分组编辑对话框中。 查找“组variables”并阅读 。

实际上,SSRS2005也可以完成重叠组,但我从来不知道这一点。 我想知道有没有人破解底部相对定位问题?

我一直在使用Crystal报告,直到版本10,一直在做我想成功与ASP.NET应用程序一起的东西。 它在网上的输出是非常好的所见即所得,出口到Excel和PDF也是准确的。 打印也是非常正确的。

最近,我一直在SSRS 2005上工作了一年左右,一直在见证如此多的缺陷,这些缺陷也是必须提供的。 不同的浏览器和不同的分辨率,SSRS网页输出会有很大的不同,很容易让开发人员感到厌烦。 此外,报表查看器的滚动问题会使最终用户很早就发疯,因为它基于使用IFRAME的HTML。 ( 注意:Crystal 13在网页浏览器中使用了IFRAME,它遭遇零星的文本包装和重叠问题 )。 出口不好。 您不能在单元格中alignment左侧或中间的图像,也不能为图像指定背景颜色。 您不能居中alignment完整的报表正文。 为了可能性,我已经使用了渲染的HTML几个小时,并找出了确切的替代scheme,但是这些简单的修复方法对于SSRS开发人员来说是不为人知的,因为他们可能从未使用过SSRS。

此外,在networking应用程序中,您需要承担用户不熟悉的用户界面参数。 我已经完全删除它,并且在ASPX页面中创build它的代价使我想在DataGrids中devise表格报告,而不是使用ObjectDataSource和数据库分页技术。 您不能根据需要布置参数。 参数中的错误部分回发完整的报告没有任何改变。 与分组分页工作的窍门,但sorting失败的完整数据集。 对于中等到高级的用户界面要求,SSRS花费了大量时间,搞清楚这是不可能的。 由于SSRS用户较less,在线社区对简单问题没有很好的解决scheme。 不要忘记SSRS的好处是它的部署,通知内置,caching和configuration方面,但没有UI赢。

BOTTOMLINE是,我看到SSRS挫败你,只是由于微软支持团队没有反应,当他们不得不说“对不起! 一个月后不是现在“。 SSRS 2008也没有很多固定的问题。 而且,转向SSRS 08意味着后端平台的完整迁移。 牢记这一点,你越多地使用一个软件,随着时间的推移越多,Crystal就是一个更好的select,因为SSRS很快就会累积成本来修复你的错误。

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

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

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

由于这个线程已经popup,我会添加我的两分钱。 在7天和8天的版本中,我不得不使用Crystal大约三年。 我讨厌每一分钟。 我已经看到了一些新版本,仍然不喜欢它。

我不喜欢它,所以我很难说这个:从我的经验来看,Crystal比SSRS更适合复杂的报告。 一位同事和我拼命地想要得到一个适度复杂的报告布局在SSRS工作,并放弃了。 我对这个产品的印象 – 只是我的看法,关注你 – 是在黄金时段还没有做好准备。

水晶会让你讨厌你的生活,并寻找另一份工作,但有一个原因是如此普遍:它的作品。

根据我的经验,Reporting Services更好。 这是一个更好的环境,但最好的连接(数据源)与报告是分开的,可以共享。 这使得环境之间更简单的部署。

我已经使用了两个,我将添加几点,已经说了:

  • 对于简单的东西,我build议SSRS默认。 水晶有点臃肿和古怪。

  • Crystal可以轻松导出为MS Word格式(.doc)。 客户经常以我的经验需要这个。

  • 如果格式很重要,Crystal可能会更好。 例如,SSRS报告在单个文本框中不能包含多种types的文本。 这意味着你不能在报告顶部有斜体和普通文本的评论。 水晶可以做到这一点:


注意:此报告包含从开始date到结束date的数据, 包括这些date。


SRSS不能(没有多个重叠的文本框)。 我曾经给了我一个20页的单词文件,将其转换成一个包含十几个图表和数据的报告。 我从SSRS开始,但是意识到在Crystal中,我可以直接复制和粘贴报告中硬编码的部分,用彩色标题和所有内容,并保存了几天的工作。 所以水晶在很多方面确实有更好的“devise师”。

更新:
显然这两个问题已经在当前的SRSS中得到解决。 任何人都在意这个呢?

我同意@Carlton的部分原因是他所描述的。 我也认为报表服务是一个更成熟的产品(即使水晶报表已经出现了)。 testing和部署模型相当丰富,并且内置跟踪报告使用情况的function非常有用。

我也发现在Reporting Services中devise报告要容易得多 – 微软已经学会了如何构build一个好的IDE,而Crystal IDE似乎一直是一个想法(尽pipe这比以前更好) 。

编辑:其他的想法我也认为,在Windows商店,SSRS提供各种与操作系统和SQL Server的甜蜜的集成。 您可以依靠SQL程序集在SSRS中轻松地重用内置代码,并且与Active Directory安全模型的集成使您的报告保护变得非常简单。

人…我的公司有很多水晶报告…而且之前的公司也有很多。 从版本8.5到11.5。 他们已经可以这么说了。 我认为CrystalReportViewer是一个蒸汽的废话,但它的确工作(大部分)。

在阅读了这些答案之后,我正在切换到SSRS来进行下一个报告项目! 写在墙上… MS将从VS下降水晶,并取代SSRS。 唯一可能的是MS开始为它充电。

编辑:乱搞SSRS今天,它看起来相当有希望。 我必须说devise师正在采取一些习惯… CRdevise师在易用性击败。 你可以告诉这是为程序员devise的,CR是面向报表devise者的。

编辑2:SSRS真的不能满足我的报告需求。 当您想要预览时,devise报告很糟糕,并且没有提供单独的参数提示。 有没有更好的方式来devise他们…最好不是在VS?

你有没有想过一个替代scheme? 如果您想使用Crystal Reports的function,但不想为此付出太多代价,则可以查看Crystal-Clear ,这是一个基于Java的报告工具,支持Crystal Reports模板。 它带有一个GUIdevise器,每个系统也可以configuration数据源。 (几乎像ODBC一样,只需为连接设置一个名称,并在系统上configuration连接。)

我想知道为什么没有人提到CR的一个大问题 – 它只是在源代码pipe理或团队环境中失败。 纠正我,如果我错了,但我真的很难看到任何报告diff工具。 有一个(大约在一年前发布),但它不是很好 – 不是因为它不好,但(我猜),因为CR只是不正确地暴露报告结构或什么…我试图导出.rpt到XML但这是笨重的和错误的。 我甚至试图写我自己的.rpt比较器。

这不仅仅是团队发展, 即使只有一个开发者,维护报告版本也是一场噩梦,如果你的客户决定增加一些东西或者改变一些颜色,你现在就被诅咒来追踪每一个文本框,因为根本没有办法找出这些变化。

RDL格式更加干净和开放。 这可能是一个非常重要的优势。

我已经使用了多年。 Crystal报告的收费方式太多,我尝试尽可能使用SSRS。 但是,SSRS不支持Firefox或任何其他浏览器,只有IE,这是一个问题。 Crystal的报告看起来更好,出口更强大,用户希望能够很好地导出到Word。 如果你是一个Java程序员,我会使用Jasper Reports,它是免费的,并使用Java语言来实现function。

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

除了使用CR更容易的设置外,我无法注意到CR至less与SSRS相同的单一function。 是的,Crystal Reports真的很糟糕。

在我看来,CR中绝对最糟糕的部分是IDE。 但是还有其他一些杀手级的function,比如SQL性能不佳和可怕的graphics(至less在VS 2008中使用的CR版本)也是显着的“杀手级”function。

我曾与CR和SSRS,这是我发现。

Crystal Reports运行在自己的内存中,而SSRS在有限的SQL Server内存中运行。

水晶报告太贵了。 最近他们已经把价格降到了250美元,我认为这是对SSRS 2008版本的回应。

SSRS是免费的。

Crystal报告最大的原因是:

您可以使用SSRS在项目中devise80%的报告。 但是对于剩余的20%,您必须使用其他报告工具。 这些20%的报告被高层pipe理人员,董事和首席执行官所使用。 他们的要求永远不会被破坏,CR在这里做的工作是非常好的。

Crystal报表仍然是基于COM的。 这是一个**的痛苦。

Crystal报表并不缺乏function或function。 这是SAP的工作。 但是它的很多类都受到保护,并且不提供对程序员的访问。 这是有意的。 SAP的人太贪心了,他们想要控制每一个function,并且在特殊的许可证安排下向开发者展示克拉斯和物体,并且收取额外的费用。 只要debugging并快速观察VS中的ReportDocument对象,您将会知道对象中的所有可用内容,但在代码中很难使用它们!

就GUI和CSS问题而言,期望一个专为精确打印而devise的COM对象,在每个浏览器中正确呈现是一个有争议的问题,即使是一个简单的div,在不同的浏览器中呈现的方式也不尽相同。

自从7年来,我一直在使用Crystal报告,并一直诅咒它,同时积极探索所有其他的select。 但是我还没有碰到像Cystal Report那样灵活的东西。 对于大部分工作SSRS是好的。 但对于仪表板,带有子报表的复杂报表,资产负债表和试算表,我绝不会浪费我在SSRS的时间。

只需在Crystal Report上进行Google趋势search即可。 过去6年来一直在稳步下滑。 肯定未来对于CR来说看起来不太好。

但嘿! MS,SAP和ORACLE仍然赞同Crystal Report的核心应用! 没有BI产品便宜。

我觉得自己像一个火星人,拥有广泛和积极的(但有时是复杂的)Crystal Reports的经验,现在已经完全集成在我们的用户界面(VBA)中,所需的报告参数和filter透明地从用户界面inheritance。

如果您正在考虑使用SSRS并担心“免费”这一事实,但您需要购买和额外的SQL Server许可证或分发SQL Express,那么您可能对Data Dynamics Reports

它提供了SSRS中的所有function,并添加了主报表,主题,日历数据区域,数据可视化(Databar,Sparkline,Iconset,ColorScale等),完整的对象模型以实现最大的编程灵活性,免版税的最终用户报表devise器,条形码报告项目,excel模板导出和数据合并,等等。 您可以从Data Dynamics(现在的GrapeCity)下载试用版,并以less量报告进行试用,您不会感到失望。

我现在已经和他们一起工作过,并且看到他们并肩作战。 水晶已经很好,但多年来的支持。 它笨重,但我们已经习惯了它,熟悉界面。 我不在LAMP环境中工作,这个房子与MS Dynamics和MAS一起工作,有一些非常大的客户。

我爱不必担心SSRS的客户端安装。 分布要容易得多,共享数据源和报告模型的工作进展顺利。

就浏览器而言,我已经在Firefox中看到了完美呈现的SSRS 2008标准。 我已经将这些仪表导出到Excel没有问题。 我已经将有和没有MOSS的报告部署到手机上。 使用Windows身份validation来部署报告以及隐藏它们的能力是非常棒的。 VS 2005及更高版本中的报表查看器对象是甜美的。

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

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

现在我正在将这个VS2008 Reporting / RDLC 2005的一个巨大报告转换成Crystal Report 2008 Basic(VS2008附带),因为它没有这个基本function。

我相信Reporting Services 2.0 / RDLC 2008(随Visual Studio 2010一起提供),更好的是, 最新的Reporting Services 3.0 / RDLC 2010在SQL Server 2008 R2高级服务中免费提供 )是更好的SSRS解决scheme。

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

现在我正在为Reporting Services 3.0 / RDLC 2010做一个概念validation,并且会发布结果。

报告服务(SSRS / RDLC)总是更容易工作,但容易带来一个价格。 对于简单的报告,请始终selectSSRS / RDLC。 对于具有主控细节,页面控制等的复杂报表,请使用最新的SSRS / RDLC版本(2008,2010)和Crystal Reports创build这些场景的PoC。

对于那些正在比较旧的Crystal Reports XI和Reporting Service 1.0的人来说,请看这个2005年的post:

SQL Server Reporting Services和Crystal Reports:竞争分析http://www.crystalreportsbook.com/SSRSandCR_Conclusion.asp