84

Crystal ReportsSSRS (SQL Server Reporting Services)哪个更好用?

4

18 回答 18

141

一方面,Crystal Reports 是一大堆昂贵且被夸大的驴屎,另一方面,SSRS 实际上实现了 CR 营销所做的所有承诺——而且它是免费的。

我对 CR 的蔑视源于多年被迫使用可怕的东西。当我可以为您提供参考资料时,详细说明 CR 的完全可憎是没有意义的,例如Clubbing the Crystal DodoCrystal Reports Sucks Donkey Dork(不是那么有趣,而是更有文化,并且有技术细节证实)。

自由的?!是的。您甚至不必购买 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 许可证,期望 Microsoft 帮助您与某些第三方数据库进行对话也会要求很高(更不用说有点奇怪了)。

我在工作中广泛使用 SSRS 来生成面向内的报表和嵌入在 ASP.NET 应用程序中的面向外的报表,这些应用程序为大量付费客户提供办公室服务。在我们的案例中,后备存储恰好是 Microsoft SQL Server 2008 的许可副本,但这与我们的报告解决方案的技术优点无关。

Crystal Reports 声称支持一长串功能,但如果您想要超过五个用户,这些功能要么不起作用,要么需要非常昂贵的许可证。您甚至不能相信 CR 能够正确执行 SQL。SELECT COUNT(*) FROM SOMETABLE WHERE 1=0应该产生零的结果,但它会产生。内置的查询引擎是有缺陷的,一个团队搞砸了一些业余爱好者可以免费做的事情(例如 MySQL),他们没有希望从他们的代码中得到任何你认为是性能的东西。

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

至于所谓的支持,我个人可以证明,对话框调整大小错误在首次公开记录后几十年都没有得到纠正。如果你拿出你的信用卡并支付勒索的赎金(我也想要丰厚的报酬来支持这样的恐怖),你会发现自己在和一个声称他的名字是大卫的人说话,但莫名其妙地发音为“Dah-feet”,谁甚至不理解你的问题,更不用说有答案了。

SSRS 支持情况非常相似,但它确实有效,因此您并不需要太多。

另一方面,SSRS 做了 CR 声称的所有事情。它并非没有错误,但它们非常少,而且它们很少能在一个以上的发布周期中存活下来。

SSRS 设计器 UI 托管在 Visual Studio IDE 中。它以典型的 Microsoft 风格呈现,极具吸引力,但不仅如此,它还经过深思熟虑,与传统报表设计器有几个简单但基本的不同之处。例如,要呈现表格数据,您需要定义一个表格,而不是摆弄单个文本框。因此,您不必费力地尝试将它们排列起来,并且在它们上设置边框是一项微不足道的样式表练习。

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

SSRS的一些缺点

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

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

于 2008-10-05T05:15:55.023 回答
20

在版本 10 之前,我一直在使用 Crystal 报表,并且一直在使用 ASP.NET 应用程序成功地完成我想要的东西。它在网络上的输出非常好,就像 WYSIWYG 一样,导出到 Excel 和 PDF 也很准确。印刷也非常正确。

最近,我已经在 SSRS 2005 上工作了大约一年,并且亲眼目睹了许多必须开箱即用的缺陷。SSRS Web 输出因不同的浏览器和不同的分辨率而有很大差异,并且很容易让开发人员感到不适。此外,报表查看器的滚动问题会让最终用户很早就生气,因为它是基于使用 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 很快就会积累您自己修复错误的成本。

于 2009-09-12T08:39:00.040 回答
15

由于该线程已重新打开,因此我将添加两美分。在版本 7 和 8 天期间,我不得不使用 Crystal 大约三年。我讨厌它的每一分钟。我看过一些较新的版本,但仍然不喜欢它。

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

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

于 2009-05-27T20:11:26.737 回答
15

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

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

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

于 2008-10-03T19:33:48.363 回答
14

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

于 2008-10-03T19:24:56.090 回答
8

两者我都用过,我会在已经说过的基础上补充几点:

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

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

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


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


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

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

于 2009-05-21T01:46:38.573 回答
4

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

我还发现在 Reporting Services 中设计报表要容易得多——微软已经学会了如何构建一个好的 IDE,而 Crystal IDE 似乎总是事后才想到的(尽管这比胎衣要好,这是过去的样子) .

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

于 2008-10-03T19:30:31.617 回答
4

伙计……我的公司有很多水晶报告……而之前的公司也有很多。从版本 8.5 到 11.5。可以这么说,他们有点已经踏入了大门。我认为 CrystalReportViewer 是一个热气腾腾的废话,但它确实有效(在大多数情况下)。

在阅读了其中一些答案后,我正在为我的下一个报告项目切换到 SSRS!写在墙上...MS将从VS中删除Crystal并替换为SSRS。唯一会糟糕的是当 MS 开始为它收费时。

编辑:今天与 SSRS 混在一起,看起来很有希望。我必须说设计师正在慢慢适应……CR Designer 在易用性方面做得很好。你可以看出这是为程序员设计的,因为 CR 是面向报表设计者的。

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

于 2008-12-12T02:39:28.867 回答
3

你有没有想过另一种选择?如果您想使用 Crystal Reports 的功能但又不想为此支付太多费用,您可以查看Crystal-Clear,它也是一个支持 Crystal Reports 模板的基于 Java 的报告工具。它带有一个 GUI 设计器,并且每个系统也可以配置数据源。(几乎类似于 ODBC,您只需为连接设置一个名称,然后在系统上配置连接。)

于 2008-11-11T16:16:46.507 回答
3

我想知道为什么没有人提到 CR 的一个大问题——它只是在源代码控制或团队环境中失败了。如果我错了,请纠正我,但我真的很努力地寻找任何报告差异工具。有一个(大约一年前发布),但它做得不好 - 不是因为它很糟糕,而是(我猜)因为 CR 只是没有正确地公开报告结构或其他什么......我试图将 .rpt 导出到 XML 但是它笨拙且错误。我什至尝试编写自己的 .rpt 比较器。

这不仅仅是关于团队发展;即使只有一个开发人员,维护报告版本也是一场噩梦,如果您的客户决定添加少量内容或更改少量颜色,那么您现在就被诅咒要跟踪每个文本框,因为绝对无法找出更改。

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

于 2010-01-24T16:47:46.670 回答
2

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

除了使用 CR 更容易设置之外,我没有注意到 CR 至少与 SSRS 相当的单一功能。是的,Crystal Reports 真的那么糟糕。

在我看来,CR 中最糟糕的部分是 IDE。但也有其他杀手级特性,比如糟糕的 SQL 性能和看起来很糟糕的图表(至少在 VS 2008 附带的 CR 版本中)也是值得注意的“杀手级”特性。

于 2009-10-01T17:26:57.767 回答
2

我已经使用了多年。Crystal 报表收费太高,我尽可能尝试使用 SSRS。但是,SSRS 不支持 firefox 或任何其他浏览器,只支持 IE,这是一个问题。Crystal 中的报表看起来更好,导出功能更强大,用户希望很好地导出到 Word。如果您是 Java 程序员,我会使用 Jasper Reports,它是免费的,并且使用 Java 语言来编写函数。

于 2009-06-10T20:05:55.003 回答
2

我曾与 CR 和 SSRS 合作过,这就是我发现的。

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

水晶报表太贵了。最近他们将价格下调至 250 美元,我认为这是对 SSRS 2008 发布的回应。

SSRS 是免费的。

水晶报表蓬勃发展的最大原因:

您可以使用 SSRS 设计项目中 80% 的报告。但是对于剩下的 20%,您必须使用其他一些报告工具。这些 20% 的报告供高层管理人员、董事和首席执行官使用。他们的要求永远不会被削弱,而 CR 在那里做得很好。

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

水晶报表不缺少功能或特性。它是 SAP 的工作马。但是它的许多类都受到保护,并且不向程序员提供访问权限。这是故意的。SAP 的人非常贪婪,他们想要控制每一个功能,并收取额外的财富,以便在特殊许可安排下向开发人员公开这些类和对象。只需调试并快速查看 VS 中的 ReportDocument 对象,您就会知道,尽管对象中有所有可用的东西,但您几乎无法在代码中使用它们!

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

自 7 年以来,我一直在使用 Crystal 报表,并且一直在诅咒它,同时积极探索所有其他替代方案。但我还没有遇到像 Cystal Report 这样灵活的东西。对于大部分工作,SSRS 是好的。但是对于仪表板、带有子报表的复杂报表、资产负债表、试算表,我永远不会在 SSRS 上浪费时间。

只需尝试在 Crystal Report 上进行 Google 趋势搜索。自过去 6 年以来,它一直在稳步下降。当然,未来对于 CR 来说并不好。

但是嘿!MS、SAP 和 ORACLE 仍然支持 Crystal Report 作为其应用程序的核心!没有任何 BI 产品便宜。

于 2012-04-16T04:55:24.207 回答
1

I feel like a martian having an extensive and positive (but sometimes complex) experience with Crystal Reports, which is now completely integrated in our user interface (VBA), where requested reports parameters and filters are transparently inherited from the user interface ...

于 2008-12-30T21:28:30.167 回答
1

如果您正在考虑 SSRS 并担心它是“免费”的,但您需要购买额外的 SQL Server 许可证或分发 SQL Express,那么您可能对Data Dynamics Reports感兴趣

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

于 2009-01-19T13:06:04.120 回答
1

我现在和他们一起工作过,并看到他们并排。水晶一直很好,但多年来费用很高。它笨重,但我们已经习惯了它并熟悉界面。我不在 LAMP 环境中工作,这所房子与 MS Dynamics 和 MAS 以及一些相当大的客户一起工作。

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

就浏览器而言,我已经在 Firefox 中看到完美渲染的 SSRS 2008 仪表。我已经毫无问题地将这些仪表导出到 Excel。我已经将带有和不带 MOSS 的报告部署到手机上。使用 Windows 身份验证来部署报告以及隐藏报告的能力非常棒。VS 2005 及更高版本中的报表查看器对象很不错。

于 2009-08-05T16:58:12.550 回答
1

各位,请以您所说的版本为准!

比如VS2008内置的免费RDLC报表(和SQL Server 2005 Reporting Services一样)不支持header和footer绑定字段,这是一个基本特性!

现在我正在将一个巨大的报表从这个 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 进行概念验证,并将发布结果。

Reporting Services (SSRS/RDLC) 总是更易于使用,但简单是有代价的。对于简单报告,请始终选择 SSRS/RDLC。对于具有主从、页面控制等的复杂报表,请使用最新的SSRS/RDLC版本(2008、2010)以及水晶报表对这些场景进行PoC。

于 2010-06-16T21:35:11.950 回答
0

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

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

于 2010-06-16T21:41:19.017 回答