使用哪种Crystal Reports和SSRS(SQL Server Reporting Services)更好?
使用哪种Crystal Reports和SSRS(SQL Server Reporting Services)更好?
Answers:
一方面,Crystal Reports充斥着大量昂贵且夸张的驴子便便,另一方面,SSRS实际上履行了CR营销所做的所有承诺-并且是免费的。
我对CR的蔑视源于多年不得不使用这种可怕的东西。当我可以为您提供诸如Clubing the Crystal Dodo或Crystal Reports Sucks Donkey Dork之类的参考文献时,确实没有必要详细说明CR的完全恶臭(不是很有趣,但更讲究文化,并且具有技术细节的依据)。
自由?!对。您甚至不必购买MS SQL Server即可获得它-您可以使用Advanced Services安装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)的任何后端。罗里在下面的评论中告诉我,“不支持”。没错,但是我在许可证中找不到任何禁止它的内容,尽管驱动程序不是由SSExpress提供的,但它们肯定是由大多数版本的Visual Studio提供的,您可以在安装工具包中提供它们。这可能不是明确支持的配置,但是怎么办?即使您确实拥有完整的MSSQL许可证,微软还是会要求您帮助与第三方数据库进行对话(这很奇怪)。
我在工作中广泛使用SSRS来处理向内报告和嵌入到ASP.NET应用程序中的向外报告,ASP.NET应用程序为大量付费客户提供局级服务。在我们的案例中,后备存储是Microsoft SQL Server 2008的许可副本,但是这与我们的报表解决方案的技术优点无关。
Crystal Reports声称支持一长串功能,但是这些功能不起作用,或者如果您想要五个以上的用户,则需要昂贵的许可证。您甚至无法相信CR能够正确执行SQL。SELECT COUNT(*) FROM SOMETABLE WHERE 1=0
应该产生零的结果但它产生了1。内置的查询引擎有缺陷,一个将大量业余爱好者可以免费做的事情搞砸的团队(例如MySQL),没有希望从其代码中获得任何您所描述的性能。
而且他们没有。邪恶的事情像无底的存储桶一样泄漏内存,如果您使用SQL性能分析工具,您会发现它效率极低。
至于所谓的支持,我可以亲自证明对话框调整大小的错误在首次公开记录后数十年未得到纠正。如果您拿出信用卡并支付要求的勒索赎金(我也希望获得丰厚的酬金来支持这种恐怖),您会发现自己正在与一个声称自己的名字叫大卫的人谈话,但莫名其妙地发音为“ Dah-feet”,甚至谁都不理解您的问题,更不用说答案了。
SSRS的支持情况非常相似,但是它实际上有效,因此您实际上并不需要太多。
另一方面,SSRS可以完成CR声称的所有工作。它不是没有bug,但是令人愉悦的是,它们很少,并且它们很少能够存活超过一个发行周期。
SSRS设计器UI托管在Visual Studio IDE中。它以典型的Microsoft风格进行了有吸引力的呈现,但不仅如此,它还经过深思熟虑,并结合了传统报表设计者的一些简单但基本的偏离。例如,要显示表格数据,您可以定义一个表格,而不是摆弄单个文本框。因此,您不必费力地尝试将它们对齐,而在它们上放置边框是一件琐碎的样式表练习。
SSRS实际上可以完成CR所声称的所有事情,它价格便宜,有大量可靠的技术文档,旨在进行扩展(也有文档),并且您可以将其连接到任何您可以获取ODBC驱动程序的地方。这是没有道理的。
实际上,看起来重叠组也可以使用SSRS2005来完成,尽管我从来不知道。我想知道是否有人破解过相对定位问题?
我一直在使用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可以胜任。
底线是,我看到SSRS令您感到沮丧的原因仅仅是Microsoft支持团队的反应迟钝,他们不得不说“对不起!一个月后 SSRS 2008也没有立即解决许多此类问题。而且,升级到SSRS'08也意味着后端平台的完整迁移。请记住,使用软件的次数越多,随着时间的推移它就会变得越成熟,Crystal总是一个更好的选择,因为SSRS很快会自己花费很多时间来修复其错误。
您可以通过包括3个DLL文件来使用Reporting Services部署应用程序。那是一个巨大的好处。(注意-您必须从GAC获取3个DLL文件之一。)
使用Crystal Reports,您必须在运行该应用程序的每台计算机(网站或客户端应用程序)上安装运行时。
Reporting Services具有大多数人需要的所有功能,并且部署更加容易。除非必须,否则我永远不会使用Crystal Reports。
由于该线程突然弹开,我将加两分钱。在版本7和8天中,我不得不使用Crystal大约三年。我讨厌它的每一分钟。我看过一些较新的版本,但仍然不喜欢它。
我非常不喜欢它,以至于我不敢这样说:根据我的经验,Crystal比SSRS更适合复杂的报告。我和我的一位同事拼命地尝试让一个中等复杂的报表布局在SSRS中工作并放弃了。我对产品的印象-只是我的意见,请注意-是它还没有做好准备。
Crystal会让您讨厌生活并寻找另一份工作,但是有一个原因使它如此无处不在:它有效。
我都用过了,我会在已经说过的地方加上几点:
对于简单的内容,我建议默认使用SSRS。水晶有点肿和古怪。
Crystal可以轻松导出为MS Word格式(.doc)。根据我的经验,客户经常希望这样做。
如果格式化很重要,Crystal可能会更好。例如,SSRS报告在一个文本框中最多只能包含一种类型的文本。就是说,报告顶部的注释不能同时包含斜体和普通文本。水晶可以做到这一点:
注意:此报告包含从开始日期到结束日期(包括那些日期)的数据。
SRSS不能(没有多个重叠的文本框)。我曾经给我一个20页的单词文档,然后将其转换为包含十几个图形和表格的数据的报告。我从SSRS开始,但是意识到在Crystal中,我可以直接从单词中复制并粘贴报告的硬编码位,并带有彩色标题和所有内容,从而节省了工作时间。因此,Crystal在许多方面确实有一个更好的“设计师”。
更新:
显然,这两个问题已在当前的SRSS中修复。有人愿意对此发表进一步评论吗?
我同意@Carlton的部分原因是他描述的原因。我还认为,报表服务是一种更成熟的产品(即使Crystal Reports出现的时间更长)。测试和部署模型非常有用,并且跟踪报告使用情况的内置功能非常有帮助。
我还发现在Reporting Services中设计报表要容易得多-微软已经学会了如何构建良好的IDE,而Crystal IDE似乎一直都是事后的想法(尽管这比过去的事要好得多) 。
编辑:其他想法我也认为,在Windows商店中,SSRS提供了与OS和SQL Server的各种有效集成。您可以非常轻松地依靠SQL程序集在SSRS中重用内置代码,并且与Active Directory安全模型的集成使保护报告非常容易。
伙计...我的公司有很多水晶报告...而在那之前的公司也有很多。从8.5版到11.5版。可以这么说,他们已经把脚踩在门上了。我认为CrystalReportViewer有点废话,但它确实起作用(大部分情况下)。
阅读了一些答案后,我将为下一个报告项目切换到SSRS!文字在墙上... MS将从VS中删除Crystal并替换为SSRS。唯一会吸引的是MS开始为其充电。
编辑:今天与SSRS混在一起,看起来很有希望。我必须说,设计师已经习惯了... CR设计师在易用性方面胜于竞争对手。您可以说这是为程序员设计的,因为CR适用于报表设计人员。
EDIT2:SSRS确实不能满足我的报告需求。当您要预览并且没有参数提示可用于独立版本时,设计报告很糟糕。有没有更好的方法来设计它们……最好不是在VS中?
您是否考虑过替代方案?如果您想使用Crystal Reports的功能但又不想花那么多钱,可以看看Crystal-Clear,它也是一种基于Java的报告工具,也支持Crystal Reports模板。它带有一个GUI设计器,并且每个系统都可以配置数据源。(几乎类似于ODBC,您只需为连接设置一个名称,然后在系统上配置该连接。)
我想知道为什么没有人提到CR的一个大问题-它只是在源代码控制或团队环境中失败了。如果我错了,请指正我,但是对于任何报表差异工具,我真的都很努力。有一个(大约一年前发布的),但是它做得不好-不是因为它不好,而是(我猜)是因为CR只是没有正确地显示报表结构或其他东西...我试图将.rpt导出为XML,但是这是笨拙和错误的。我什至尝试编写自己的.rpt比较器。
这不仅仅与团队发展有关。即使只有一个开发人员,维护报表版本也是一个噩梦,而且如果您的客户决定添加一些内容或更改几种颜色,那么您现在就被迫跟踪每个文本框,因为绝对没有办法找出更改。
RDL格式更加干净开放。这可能是一个相当大的优势。
我已经用了两年了。Crystal Reports收费过多,因此我会尽可能使用SSRS。但是,SSRS不支持Firefox或任何其他浏览器,仅支持IE,这是一个问题。Crystal中的报表看起来更好,导出功能更强大,用户希望良好地导出到Word。如果您是Java程序员,那么我会使用Jasper Reports,它是免费的,并且使用Java语言编写函数。
我曾经使用过(Crystal Reports 2008和SSRS 2008),因为我没有及时注意到此线程。
除了使用CR设置要容易一些之外,我没有注意到CR至少可以与SSRS相提并论的单个功能。是的,Crystal Reports确实很糟糕。
在我看来,CR中最糟糕的部分是IDE。但是,还有其他杀手级功能,例如较差的SQL性能和可怕的图形(至少在VS 2008附带的CR版本中)也是值得注意的“杀手级”功能。
我曾与CR和SSRS一起工作过,这是我发现的。
Crystal Reports在其自己的内存中运行,而SSRS在有限的SQL Server内存中运行。
水晶报表太贵了。最近,他们将价格下调至250美元,我认为这是对SSRS 2008版本的回应。
SSRS是免费的。
Crystal报表蓬勃发展的最大原因是:
您可以使用SSRS设计项目中80%的报告。但是对于剩下的20%,您必须使用其他报告工具。这些20%的报告供高层经理,董事和首席执行官使用。他们的要求永远不会受到破坏,CR在这里做了出色的工作。
Crystal报表仍基于COM。这是一个痛苦的**。
Crystal Report并不缺乏功能。它是SAP的主力军。但是它的许多类都受到保护,并且不提供对程序员的访问。这是有意为之。SAP员工是如此贪婪,以至于他们希望控制每项功能,并收取额外的财富,以便在特殊的许可安排下向开发人员展示这些分类和对象。只需调试并快速查看VS中的ReportDocument对象,您将知道该对象中的所有可用内容,您几乎无法在代码中使用它们!
就GUI和CSS问题而言,期望一个专为精确打印而设计的COM对象在每个浏览器中正确呈现是一个有争议的问题,因为即使一个简单的div在不同浏览器中呈现的方式也不同。
从7年以来,我一直在使用Crystal报表,并且在积极探索所有其他替代方案的同时,一直在诅咒它。但是我还没有遇到像Cystal Report这样灵活的东西。对于大部分工作而言,SSRS很好。但是对于Dashboards,带有子报表的复杂报表,资产负债表,试算表,我永远不会在SSRS中浪费时间。
只需在Crystal Report上尝试Google趋势搜索即可。自最近6年以来,它一直在稳步下降。毫无疑问,CR的未来并不美好。
但是,嘿!MS,SAP和ORACLE仍将Crystal Report作为其应用程序的核心!而且没有BI产品会便宜。
我感觉自己像是一个火星人,对Crystal Reports拥有广泛而积极的(有时是复杂的)体验,该体验现已完全集成到我们的用户界面(VBA)中,在该用户界面中,所请求的报告参数和过滤器透明地从用户界面继承...
如果您正在考虑使用SSRS,并且担心它是“免费”的,但是您需要购买和购买额外的SQL Server许可证或分发SQL Express,那么您可能会对Data Dynamics报告感兴趣
它提供了SSRS中的所有功能,并添加了主报表,主题,日历数据区域,数据可视化(数据栏,迷你图,Iconset,ColorScale等),完整的对象模型,以实现最大的编程灵活性,免版税的最终用户报表设计器,条形码报告项目,Excel模板导出和数据合并等等。您可以从Data Dynamics(现为GrapeCity)下载一个试用版,并以少量报告尝试它,您不会失望的。
我现在和他们一起工作,并肩并肩看到他们。水晶一直很好,但多年来费用昂贵。它笨拙,但是我们已经习惯了它并且熟悉界面。我不在LAMP环境中工作,这家公司可以与MS Dynamics和MAS一起使用一些大型客户。
我喜欢不必担心SSRS的客户端安装。分发要容易得多,并且共享数据源和报告模型的情况良好。
就浏览器而言,我已经在Firefox中看到了完美呈现的SSRS 2008仪表。我已将这些量规导出到Excel,没有问题。我已经在有和没有MOSS的情况下将报告部署到了手机上。使用Windows身份验证来部署报告以及隐藏报告的功能非常棒。VS 2005和更高版本中的报表查看器对象很不错。
人们,请参考您正在谈论的版本!
例如,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年文章:
SQL Server Reporting Services和Crystal报表:竞争分析 http://www.crystalreportsbook.com/SSRSandCR_Conclusion.asp