何时使用 RDLC 而不是 RDL 报告?
过去几周我一直在研究 SSRS 2005 / 2008 并创建了一些服务器端报告。 对于某些应用,一位同事建议我针对特定情况研究 RDLC。 我现在正在尝试了解 RDL 和 RDLC 之间的主要区别。
搜索这些信息最多只能得到零散的信息。 我了解到:
- RDLC 报告不存储有关如何获取数据的信息。
- RDLC报告可以直接由ReportViewer控件执行。
但我仍然不完全理解RDLC文件和其他相关系统(报表服务器、源数据库、客户端)之间的关系。
为了更好地掌握 RDLC 文件,我想知道它们的使用与 RDL 文件有何不同,以及在什么情况下会选择 RDLC 而不是 RDL。 也欢迎提供资源链接。
更新:
ASP.NET 论坛上的帖子讨论了同样的问题。 从中,我对这个问题有了更多的了解。
RDLC 的一个功能是它可以在 ReportViewer 控件中完全在客户端运行。
- 这消除了对 Reporting Services 实例的需要,甚至消除了对任何数据库连接的需要,但是:
- 它增加了必须手动提供报表中所需数据的要求。
这是优点还是缺点取决于特定的应用。
在我的应用程序中,无论如何都有一个 Reporting Services 实例可用,并且可以轻松地从数据库中提取报告所需的数据。 我还有什么理由考虑 RDLC,还是应该坚持使用 RDL?
I have been studying SSRS 2005 / 2008 in the past weeks and have created some server side reports. For some application, a colleague suggested that I look into RDLC for that particular situation. I am now trying to get my head around the main difference between RDL and RDLC.
Searching for this information yields fragmented information at best. I have learned that:
- RDLC reports do not store information about how to get data.
- RDLC reports can be executed directly by the ReportViewer control.
But I still don't fully understand the relation between the RDLC file and the other related systems (the Reporting Server, the source database, the client).
In order to get a good grasp on RDLC files, I would like to know how their use differs from RDL files and in what situation one would choose RDLC over RDL. Links to resources are also welcome.
Update:
A thread on the ASP.NET forums discusses this same issue. From it, I have gained some better understanding on the issue.
A feature of RDLC is that it can be run completely client-side in the ReportViewer control.
- This removes the need for a Reporting Services instance, and even removes the need for any database connection whatsoever, but:
- It adds the requirement that the data that is needed in the report has to be provided manually.
Whether this is an advantage or a disadvantage depends on the particular application.
In my application, an instance of Reporting Services is available anyway and the required data for the reports can easily be pulled from a database. Is there any reason left for me to consider RDLC, or should I simply stick with RDL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
根据我的经验,这两件事几乎不需要考虑:
I. RDL 报告通常是托管报告。 这意味着您需要实施 SSRS 服务器。 它们是来自 SQL Server 的 Visual Studio 的内置扩展,用于报告语言。 当您安装 SSRS 时,您应该有一个名为“Business Intelligence Development Studio”的附加组件,使用报告比没有它更容易。
R eport
D efinition
L angauge
RDL 报告的优点:
使用 ReportService2010.asmx 以编程方式从共享点导出 SSRS 报告缺点
:
二. RDLC 报告是客户端包含的报告,不在任何地方托管。 名称中额外的 c 表示“客户端”。 通常,这是 RDL 语言的扩展,仅在 Visual Studio 客户端应用程序中使用。 当您添加“报告”项时,它就存在于 Visual Studio 中。
RDLC 报告的优点:
缺点:
老实说,我出于不同的目的都喜欢两者。 如果我想要向分析师提供一些他们一直使用的东西,并对图表、图表、钻取和导出到 Excel 进行调整,我会使用 RDL,并且让 SSRS 的站点完成处理电子邮件分发的所有跑腿工作。 如果我想要一个具有报告部分的应用程序,并且我知道该应用程序是它自己的具有规则和治理的模块,我会使用 RDLC 并让参数更小,并由用户在进入报告部分之前做出的决策驱动他们所在的客户和网站,然后他们通常只是选择一个时间范围或类型,仅此而已。 因此,一般来说,复杂的报告我会使用 RDL,而对于简单的报告,我会使用 RDLC 恕我直言。
From my experience there are few things to think about both things:
I. RDL reports are HOSTED reports generally. This means you need to implement SSRS Server. They are a built in extension of Visual Studio from SQL Server for the reporting language. When you install SSRS you should have an add on called 'Business Intelligence Development Studio' which is much easier to work with the reports than without it.
R eport
D efinition
L angauge
Benefits of RDL reports:
Programmatically Export SSRS report from sharepoint using ReportService2010.asmx
Downsides:
II. RDLC reports are CLIENT CONTAINED reports that are NOT HOSTED ANYWHERE. The extra c in the name means 'Client'. Generally this is an extension of the RDL language meant for use only in Visual Studio Client Applications. It exists in Visual Studio when you add a 'reporting' item.
Benefits of RDLC reports:
Downsides:
Honestly I like both for different purposes. If I want something to go out to analysts that they use all the time and tweak for graphs, charts, drill downs and exports to Excel I use RDL and just have SSRS's site do all the legwork of handling the email distributions. If I want an application that has a report section and I know that application is its own module with rules and governance I use an RDLC and having the parameters be smaller and be driven by the decisions the user made before getting to the report part of what client they are on and site and then they usually just choose a time frame or type and nothing more. So generally a complex report I would use RDL and for something simple I would use RDLC IMHO.
http://www.gotreportviewer.com/
http://www.gotreportviewer.com/
我一直认为RDL和RDLC之间的区别在于RDL用于SQL Server Reporting Services,而RDLC在Visual Studio中用于客户端报告。 实现和编辑器几乎相同。 RDL 代表
报告定义语言
和RDLC报告定义语言客户端
。我希望这有帮助。
I have always thought the different between RDL and RDLC is that RDL are used for SQL Server Reporting Services and RDLC are used in Visual Studio for client side reporting. The implemenation and editor are almost identical. RDL stands for
Report Defintion Language
and RDLCReport Definition Language Client-side
.I hope that helps.
根据我的经验,如果您需要大型报告的高性能(这确实稍微取决于您的客户端规格),请使用 rdlc。 此外,rdlc 报告使您能够对数据进行非常全面的控制,您可以通过使用客户端报告来节省自己浪费的数据库访问等。 在我目前正在进行的项目中,一份关键报告需要大约 2 分钟才能在服务器端呈现,并且几乎会删除该时间到达的任何报告服务器。 将其切换到客户端呈现,我们看到性能更接近 20-40 秒,报表服务器上没有负载,并且使用的带宽更少,因为只下载数据集。
您的情况可能会有所不同,我发现 rdlc 增加了开发和维护的复杂性,特别是当您的报告被设计为服务器端报告时。
From my experience, if you need high performance (this does depend slightly on your client specs) on large reports, go with rdlc. Additionally, rdlc reports give you a very full range of control over your data, you may be able to save yourself wasted database trips, etc. by using client side reports. On the project I'm currently working on, a critical report requires about 2 minutes to render on the server side, and pretty much takes out whichever reporting server it hits for that time. Switching it to client side rendering, we see performance much closer to 20-40 seconds with no load on the report server and less bandwidth used because only the datasets are being downloaded.
Your mileage may vary, and I find rdlc's add development and maintenance complexity, especially when your report has been designed as a server side report.
其中一些要点已在上面得到解决,但这里是我针对 VS2008 环境的 2 美分。
RDL(远程报告):更好的开发体验,如果您需要使用一些高级功能(如调度、临时报告等),则更具灵活性...
RDLC(本地报告):在将数据发送到报告之前更好地控制数据(在将数据发送到报告之前更容易验证或操作数据)。 部署更加容易,无需 Reporting Services 实例。
本地报告的一个巨大警告是已知的内存泄漏,如果您的客户端将运行大量大型报告,则可能会严重影响性能。 这个问题应该通过新的 VS2010 版本的报表查看器来解决。
就我而言,由于我们有一个可用的 Reporting Services 实例,因此我将新报告开发为 RDL,然后将其转换为本地报告(这很简单)并将其部署为本地报告。
Some of these points have been addressed above, but here's my 2-cents for VS2008 environment.
RDL (Remote reports): Much better development experience, more flexibility if you need to use some advanced features like scheduling, ad-hoc reporting, etc...
RDLC (Local reports): Better control over the data before sending it to the report (easier to validate or manipulate the data prior to sending it to the report). Much easier deployment, no need for an instance of Reporting Services.
One HUGE caveat with local reports is a known memory leak that can severely affect performance if your clients will be running numerous large reports. This is supposed to be addressed with the new VS2010 version of the report viewer.
In my case, since we have an instance of Reporting Services available, I develop new reports as RDLs and then convert them to local reports (which is easy) and deploy them as local reports.
如果您有可用的报告服务基础设施,请使用它。 您会发现 RDL 开发变得更加愉快。 您可以预览报告、轻松设置参数等。
If you have a reporting services infrastructure available to you, use it. You will find RDL development to be a bit more pleasant. You can preview the report, easily setup parameters, etc.
虽然我目前倾向于 RDL,因为它看起来更灵活且更易于管理,但 RDLC 的优势在于它似乎简化了您的许可。 由于 RDLC 不需要 Reporting Services 实例,因此您不需要 Reporting Services 许可证即可使用它。
我不确定这是否仍然适用于较新版本的 SQL Server,但有一次,如果您选择将 SQL Server 数据库和 Reporting Services 实例放在两台单独的计算机上,则需要拥有两个单独的 SQL Server 许可证:
http://social .msdn.microsoft.com/forums/en-US/sqlgetstarted/thread/82dd5acd-9427-4f64-aea6-511f09aac406/
您可以 Bing 了解有关 Reporting Services 许可的其他类似博客和帖子。
While I currently lean toward RDL because it seems more flexible and easier to manage, RDLC has an advantage in that it seems to simplify your licensing. Because RDLC doesn’t need a Reporting Services instance, you won't need a Reporting Services License to use it.
I’m not sure if this still applies with the newer versions of SQL Server, but at one time if you chose to put the SQL Server Database and Reporting Services instances on two separate machines, you were required to have two separate SQL Server licenses:
http://social.msdn.microsoft.com/forums/en-US/sqlgetstarted/thread/82dd5acd-9427-4f64-aea6-511f09aac406/
You can Bing for other similar blogs and posts regarding Reporting Services licensing.
对于 VS2008,我相信 RDL 为您提供比 RDLC 更好的编辑功能。 例如,我可以使用 RDL 更改文本框中选定文本量的粗体,而在 RDLC 中这是不可能的。
RDL: abcd efgh ijklmnop
RDLC: abcd efgh ijklmnop - 或 - abcd efgh ijklmnop (是你唯一的选择)
这是因为 RDLC 使用的是 2005 年的早期命名空间/格式,而 RDL 使用的是 2008。然而,这将随着 VS2010 的改变而改变
For VS2008, I believe RDL gives you better editing features than RDLC. For example, I can change the Bold on a selected amount of text in a textbox with RDL, while in RDLC it's is not possible.
RDL: abcd efgh ijklmnop
RDLC: abcd efgh ijklmnop -or- abcd efgh ijklmnop (are your only options)
This is because RDLC is using a earlier namespace/formatting from 2005, while RDL is using 2008. This however will change with VS2010
如果我们的报告数量较少,且不太复杂且由 ASP.NET 网页使用。
最好使用 rdlc,因为我们可以避免在 RS 实例上维护报告。
但我们必须手动从数据库中获取数据并将其绑定到rdlc。
缺点:与 SSrs 设计器相比,在 Visual Studio 中设计 RDLC 并不困难。
优点:维护很容易。
从我们的页面导出报告时,观察到与服务器端报告相比性能有所提高。
If we have fewer number of reports which are less complex and consumed by asp.net web pages.
It's better to go with rdlc,reason is we can avoid maintaing reports on RS instance.
but we have to fetch the data from DB manually and bind it to rdlc.
Cons:designing rdlc in visual studio is little difficult compared to SSrs designer.
Pro:Maintenance is easy.
while exporting the report from we page,observed that performance gain compared to server side reports.
如果你想在 ASP.NET 中使用报告,那么使用 .rdl
如果您想在报表生成器/报表服务器中使用/view,则使用.rdlc
只需手动转换格式即可
if you want to use report in asp.net then use .rdl
if you want to use /view in report builder / report server then use .rdlc
just by converting format manually it works