本文介绍了比较 SQL Server Reporting Services 与 Crystal Reports的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Which of Crystal Reports and SSRS (SQL Server Reporting Services) is better to use?

推荐答案

一方面,Crystal Reports 是一堆热气腾腾的昂贵且过度炒作的驴便便,另一方面 SSRS 实际上实现了 CR 营销的所有承诺制作 - 而且是免费的.

On the one-hand, Crystal Reports is a steaming pile of expensive and overhyped donkey poo, and on the other hand SSRS actually fulfils all the promises that CR marketing makes - and it's free.

我对 CR 的蔑视源于多年来不得不使用这个可怕的东西.当我可以为您提供诸如 Clubbing the Crystal DodoCrystal Reports Sucks Donkey Dork(不是那么有趣,而是更有文化和技术细节证实).

My contempt for CR stems from many years of being obliged to use the horrible thing. There's really no point in detailing the utter odiousness of CR when I can give you references like Clubbing the Crystal Dodo or Crystal Reports Sucks Donkey Dork (not as funny but rather more literate and substantiated with technical details).

免费?!对.您甚至不必购买 MS SQL Server 即可获得它 - 您可以安装带有高级服务的 SQL Express.这可作为 下载包括 SQL Server 报告服务.尽管 SQL Express 可以支持的并发用户数量有限,但以下观察结果很重要:

Free?! Yup. You don't even have to buy MS SQL Server to get it - you can install SQL Express with Advanced Services. This is available as a download that includes SQL Server Reporting Services. While SQL Express is limited in the number of concurrent users it can support, the following observations are salient:

  • 获得的 SSRS 许可证为SQL Express 的一部分只需要将其部署为 SQL 的一部分表达.没有什么禁止的连接到其他数据源或要求报告获取数据来自 SQL Server.

  • The licence for SSRS obtained aspart of SQL Express only requiresthat it be deployed as part of SQLExpress. There is nothing forbiddingconnection to other data sources orrequiring that a report obtain datafrom SQL Server.

上述版本的SSRS没有内在的限制用户连接.所有限制强加于 SQL Express数据库引擎.

The abovementioned version of SSRShas no intrinsic restrictions onuser connections. All limitationsare imposed on the SQL Expressdatabase engine.

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

SSRS uses ADO.NET, which includes,out of the box, drivers for Oracle,Jet (Access), OLEDB and ODBC

因此,您可以将 SSRS 的免费版本连接到任何可以连接 ADO.NET 的后端,其中包括(例如)MySQL.Rory 在下面的评论中告诉我,这是不支持的".这是真的,但我在许可证中找不到任何禁止它的内容,虽然驱动程序不是 由 SSExpress 提供的,但它们肯定 由大多数版本的 Visual Studio 提供,而您可以在您的安装套件中运送它们.这可能不是明确支持的配置,但那又怎样?即使您确实拥有完整的 MSSQL 许可证,也要求 Microsoft 帮助您与某些第三方数据库进行通信(更不用说有点奇怪).

Thus you can connect the free version of SSRS to any back-end to which you can connect ADO.NET, which includes (for example) MySQL. I am told by Rory in a comment below that this is "not supported". That's true but I can't find anything in the licence that forbids it and while the drivers are not supplied by SSExpress they certainly are supplied by most versions of Visual Studio and you can ship them in your setup kit. This may not be an expressly supported configuration but so what? Even if you did have a full MSSQL licence it would be asking a bit much to expect Microsoft to help you talk to some third party database (not to mention a bit weird).

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

I use SSRS extensively at work both for inward facing reports and for outward facing reports embedded in ASP.NET applications that provide bureau services to large numbers of paying customers. In our case it happens that the backing store is a licensed copy of Microsoft SQL Server 2008, but this is incidental to the technical merits of our reporting solution.

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

There is a long list of capabilities that Crystal Reports claims to support but which either don't work or which require a staggeringly expensive licence if you want more than five users. You can't even trust CR to do SQL correctly. SELECT COUNT(*) FROM SOMETABLE WHERE 1=0 should produce a result of zero but it it produces one. The built-in query engine is defective, and a team that screws up something a bunch of amateurs can do for free (eg MySQL) has no hope of getting anything you'd describe as performance out of their code.

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

And they don't. The evil thing leaks memory like a bucket with no bottom, and if you use SQL profiling tools you will find it is spectacularly inefficient.

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

As for the alleged support, I can personally attest that dialog resize bugs have gone uncorrected for decades after they were first publicly documented. If you get out your credit card and pay the extortionate ransoms demanded (I too would want handsome pay to support such a horror) you will find yourself talking to someone who claims his name is David, but inexplicably pronounces it "Dah-feet", and who doesn't even understand your question, much less have an answer.

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

The SSRS support situation is fairly similar, but it actually works so you don't really need much.

另一方面,SSRS 可以完成 CR 声称的所有工作.它并非没有错误,但它们非常少,而且它们很少能在一个以上的发布周期中幸存下来.

SSRS, on the other hand, does everything that CR claims to. It is not without bugs, but they are delightfully few, and they seldom survive more than one release cycle.

SSRS 设计器 UI 托管在 Visual Studio IDE 中.它以典型的 Microsoft 风格精美呈现,但更重要的是,它经过深思熟虑,结合了与传统报表设计器的几个简单但根本的不同之处.例如,要呈现表格数据,您可以定义一个表格,而不是摆弄各个文本框.因此,您不必费力地尝试将它们对齐,并且为它们添加边框是一项微不足道的样式表练习.

The SSRS designer UI is hosted within the Visual Studio IDE. It is attractively presented in typical Microsoft style, but more than this it is quite well thought out, incorporating several simple but fundamental departures from traditional report designers. For example, to present tabular data you define a table rather than fiddling about with individual text boxes. As a result you don't have to screw around trying to line them up, and putting borders on them is a trivial stylesheet exercise.

SSRS 实际上做了 CR 声称的所有事情,它很便宜,有大量可靠的技术文档,它旨在扩展(也有文档记录),您可以将它连接到任何可以获得 ODBC 驱动程序的东西.这很简单.

SSRS actually does all the things CR claims to, it's inexpensive, there is extensive reliable technical documentation, it's designed to be extended (also documented) and you can connect it to anything for which you can get an ODBC driver. This is a no brainer.

  • 如何绑定页眉和页脚中的字段并不明显.
  • 不可能(据我所知)相对于页面底部进行定位.对于某些类型的报告来说,这是一个真正的问题,我想不出解决方法.
  • 不支持交叉表中的 expando 水平汇总.
  • 不直接支持报告页眉和页脚.在报表布局的顶部和底部使用 Rectangle 对象,并适当设置分页属性.或者使用子报表.抱怨这个的人显然没有很努力.
  • 缺乏对重叠组间隔的支持(CR 分组系统可以做到这一点)更新 SSRS 2008 R2 现在支持这一点.它隐藏在分组编辑对话框中.查找组变量"和 阅读此内容.
  • It is not obvious how to bind fields in page headers and footers.
  • It is not possible (so far as I know) to position relative to the bottom of a page. This is a genuine problem for certain types of report, and one for which I can think of no workaround.
  • There's no support for expando horizontal rollups in cross-tabulations.
  • There's no direct support for report headers and footers. Use Rectangle objects at top and bottom of the report layout, with pagebreaking properties set appropriately. Or use subreports. The people who complain about this obviously haven't tried very hard.
  • Lack of support for overlapping group intervals (the CR grouping system can do this) UPDATE SSRS 2008 R2 now supports this. It's buried in the grouping edit dialog. Look up "group variables" and read this.

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

It actually looks like overlapping groups can be done with SSRS2005 too, although I never knew that. I wonder did anyone ever crack the bottom-relative positioning issue?

这篇关于比较 SQL Server Reporting Services 与 Crystal Reports的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 01:42