何时使用RDLC而不是RDL报告?

时间:2022-01-15 08:15:25

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.

我在过去几周一直在研究SSRS 2005/2008,并创建了一些服务器端报告。对于某些应用,一位同事建议我针对该特定情况研究RDLC。我现在试图了解RDL和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报告不存储有关如何获取数据的信息。

  • RDLC reports can be executed directly by the ReportViewer control.
  • RDLC报告可以由ReportViewer控件直接执行。

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).

但我仍然不完全理解RDLC文件与其他相关系统(报告服务器,源数据库,客户端)之间的关系。

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.

为了更好地掌握RDLC文件,我想知道它们的使用与RDL文件的区别以及在什么情况下选择RDLC而不是RDL。也欢迎链接到资源。

Update:

A thread on the ASP.NET forums discusses this same issue. From it, I have gained some better understanding on the issue.

ASP.NET论坛上的一个主题讨论了同样的问题。从中,我对这个问题有了更好的理解。

A feature of RDLC is that it can be run completely client-side in the ReportViewer control.

RDLC的一个特性是它可以在ReportViewer控件中完全在客户端运行。

  • This removes the need for a Reporting Services instance, and even removes the need for any database connection whatsoever, but:
  • 这消除了对Reporting Services实例的需要,甚至无需任何数据库连接,但是:

  • 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?

在我的应用程序中,无论如何都可以使用Reporting Services实例,并且可以轻松地从数据库中提取报告所需的数据。有什么理由让我考虑RDLC,还是我应该坚持使用RDL?

10 个解决方案

#1


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.

I.一般而言,RDL报告是HOSTED报告。这意味着您需要实施SSRS服务器。它们是SQL Server内置的Visual Studio扩展,用于报告语言。安装SSRS时,您应该添加一个名为“Business Intelligence Development Studio”的附加组件,与使用它相比,它更容易使用报表。

R eport

D efinition

L angauge

Benefits of RDL reports:

RDL报告的好处:

  1. You can host the reports in an environment that has services running for you on them.
  2. 您可以在具有为其运行服务的环境中托管报告。

  3. You can configure security on an item or inheriting level to handle security as a standalone concept
  4. 您可以在项目或继承级别上配置安全性,以将安全性作为独立概念来处理

  5. You can configure the service to send out emails(provided you have an SMTP server you have access to) and save files on schedules
  6. 您可以将服务配置为发送电子邮件(前提是您有可访问的SMTP服务器)并将文件保存在日程表中

  7. You have a database generally called 'ReportServer' you can query for info on the reports once published.
  8. 您有一个通常称为“ReportServer”的数据库,您可以在发布后查询报告的信息。

  9. You can access these reports still through 'ReportViewer' in a client application written in ASP.NET, WPF (with a winform control bleh!), or Winforms in .NET using 'ProcessingMode.Remote'.
  10. 您仍然可以通过使用ASP.NET,WPF编写的客户端应用程序中的“ReportViewer”(带有winform控件!)或使用“ProcessingMode.Remote”的.NET中的Winforms来访问这些报表。

  11. You can set parameters a user can see and use to gain more flexibility.
  12. 您可以设置用户可以查看和使用的参数以获得更大的灵活性。

  13. You can configure parts of a report to be used for connection strings as 'Data Sources' as well as a sql query, xml, or other datasets as a 'Dataset'. These parts and others can be stored and configured to cache data on a regular basis.
  14. 您可以将用于连接字符串的报表部分配置为“数据源”以及将sql查询,xml或其他数据集配置为“数据集”。可以存储和配置这些部件和其他部件以定期缓存数据。

  15. You can write .NET proxy classes of the services http:// /ReportServer/ReportingService2010 or /ReportExecution2005. You can then make up your OWN methods in .NET for emailing, saving, or manipulating SSRS data from the service directly of a Server hosting SSRS reports in code. Programmatically Export SSRS report from sharepoint using ReportService2010.asmx
  16. 您可以编写服务http:// / ReportServer / ReportingService2010或/ ReportExecution2005的.NET代理类。然后,您可以在.NET中构建自己的OWN方法,以便直接从托管SSRS报告的服务器的服务中通过电子邮件发送,保存或操作SSRS数据。使用ReportService2010.asmx以编程方式从sharepoint导出SSRS报告

Downsides:

  1. SSRS is kind of wonkey compared to other things on getting it up fast. Most people get confused by the security policy and designing reports as an 'add on' to VS. SQL 2005 = VS BIDS 2005 , SQL 2008 = VS BIDS 2008, SQL 2012 = VS BIDS 2010(LOL).
  2. SSRS与快速上升的其他东西相比是一种胜利。大多数人对安全策略感到困惑,并将报告设计为VS的“附加”。 SQL 2005 = VS BIDS 2005,SQL 2008 = VS BIDS 2008,SQL 2012 = VS BIDS 2010(LOL)。

  3. Continuing on 1 the policy for security settings IMHO are idiotically overcomplex. There is server security, database security and roles, two security settings on the page hosted for the service. Most people only set up an admin than can't get in and wonder why other users cannot. Most common complaint or question on SSRS is related to getting in generally from my experience.
  4. 继续1安全设置的政策恕我直言是愚蠢的过于复杂。服务器安全性,数据库安全性和角色,为服务托管的页面上有两个安全设置。大多数人只设置一个管理员而不能进入,并想知道为什么其他用户不能。关于SSRS的最常见的抱怨或问题与从我的经验中获得的一般情况有关。

  5. You can use 'expressions' that will supposeduly 'enhance' your report. Often times you do more than a few and your report goes to a crawl in performance.
  6. 您可以使用“表达式”来表示“增强”您的报告。通常情况下,您执行的操作不止一些,而且您的报告会在性能方面进行爬行。

  7. You have a set amount of things you can do and export to. SSRS has no hover over reporting I know of without a javascript hack.
  8. 您有一定数量的事情可以做并导出。没有javascript hack,SSRS没有悬停在我知道的报告上。

  9. Speed and performance can take a hit as the stupid SSRS config recycles the system and a first report can take a while at times just loading the site. You can get around this by altering it but I have found making a keep alive service for it works better.
  10. 速度和性能可能会受到影响,因为愚蠢的SSRS配置会回收系统,并且第一次报告有时会在加载站点时花费一些时间。你可以通过改变它来解决这个问题,但我发现它可以提供更好的服务。

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.

II。 RDLC报告是客户端包含的报告,不会在任何地方出现。名称中的额外c表示“客户”。通常,这是RDL语言的扩展,仅适用于Visual Studio客户端应用程序。当您添加“报告”项时,它存在于Visual Studio中。

Benefits of RDLC reports:

RDLC报告的好处:

  1. You can hookup a wcf service much much much more easier to the dataset.
  2. 您可以更加轻松地将数据集连接到wcf服务。

  3. You have more control over the dataset and can use POCO classes filled with Entity framework objects or ADO.NET directly as well as tables themselves. You can monkey with the data for optimization it before binding it to the report.
  4. 您可以更好地控制数据集,并且可以直接使用填充了Entity框架对象或ADO.NET的POCO类以及表本身。在将数据绑定到报表之前,您可以使用数据进行优化。

  5. You can customize the look more with add on's directly in code behind.
  6. 你可以直接在后面的代码中添加on来自定义外观。

Downsides:

  1. You need to handle parameters on your own and while you can implement wrapper methods to help the legwork is a little more than expected and unfortunate.
  2. 你需要自己处理参数,同时你可以实现包装方法,以帮助腿部工作比预期和不幸多一点。

  3. The user cannot SEE the parameters in a 'ReportViewer' control unless it is in remote mode and accessing an RLD report. Thus you need to make textboxes, dropdowns, radio buttons on your own outside the control to pass to it. Some people like this added control, I do not personally.
  4. 除非处于远程模式并访问RLD报告,否则用户无法在“ReportViewer”控件中查看参数。因此,您需要在控件外部自己创建文本框,下拉列表,单选按钮以传递给它。有些人喜欢这样增加了控制力,我个人并不喜欢。

  5. Anything you want to do with servicing the reports for distribution you need to build yourself. Emailing, subscriptions, saving. Sorry you need to build that in .NET or else implement a proxy that already does that from above you could just be getting using hosted reports.
  6. 您需要为报告分发服务而做的任何事情都需要自己构建。通过电子邮件发送,订阅,保存。对不起,您需要在.NET中构建它,或者实现一个已经从上面执行此操作的代理,您可能只是使用托管报告。

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 it's 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.

老实说,我喜欢两种用途。如果我想向分析师询问他们是否一直使用并调整图形,图表,钻取和导出到Excel,我使用RDL并让SSRS的网站完成处理电子邮件分发的所有工作。如果我想要一个具有报告部分的应用程序,并且我知道应用程序是它自己的带有规则和治理的模块,我使用RDLC并且参数更小并且由用户做出的决定驱动,然后才能获得报告的部分内容他们所在的客户和网站,然后他们通常只选择一个时间范围或类型,而不是更多。因此,一般来说,我会使用RDL的复杂报告,对于简单的事情,我会使用RDLC恕我直言。

I hope that helps.

我希望有所帮助。

#2


Q: What is the difference between RDL and RDLC formats?

A: RDL files are created by the SQL Server 2005 version of Report Designer. RDLC files are created by the Visual Studio 2008 version of Report Designer.

答:RDL文件由SQL Server 2005版本的报表设计器创建。 RDLC文件由Visual Studio 2008版本的报表设计器创建。

RDL and RDLC formats have the same XML schema. However, in RDLC files, some values (such as query text) are allowed to be empty, which means that they are not immediately ready to be published to a Report Server. The missing values can be entered by opening the RDLC file using the SQL Server 2005 version of Report Designer. (You have to rename .rdlc to .rdl first.)

RDL和RDLC格式具有相同的XML架构。但是,在RDLC文件中,某些值(例如查询文本)可以为空,这意味着它们不会立即准备好发布到报表服务器。可以使用SQL Server 2005版本的报表设计器打开RDLC文件来输入缺少的值。 (您必须先将.rdlc重命名为.rdl。)

RDL files are fully compatible with the ReportViewer control runtime. However, RDL files do not contain some information that the design-time of the ReportViewer control depends on for automatically generating data-binding code. By manually binding data, RDL files can be used in the ReportViewer control. New! See also the RDL Viewer sample program.

RDL文件与ReportViewer控件运行时完全兼容。但是,RDL文件不包含ReportViewer控件的设计时间依赖于自动生成数据绑定代码的一些信息。通过手动绑定数据,可以在ReportViewer控件中使用RDL文件。新!另请参阅RDL Viewer示例程序。

Note that the ReportViewer control does not contain any logic for connecting to databases or executing queries. By separating out such logic, the ReportViewer has been made compatible with all data sources, including non-database data sources. However this means that when an RDL file is used by the ReportViewer control, the SQL related information in the RDL file is simply ignored by the control. It is the host application's responsibility to connect to databases, execute queries and supply data to the ReportViewer control in the form of ADO.NET DataTables.

请注意,ReportViewer控件不包含用于连接到数据库或执行查询的任何逻辑。通过分离出这样的逻辑,ReportViewer已经与所有数据源兼容,包括非数据库数据源。但是,这意味着当ReportViewer控件使用RDL文件时,控件将忽略RDL文件中的SQL相关信息。主机应用程序负责以ADO.NET DataTables的形式连接到数据库,执行查询并向ReportViewer控件提供数据。

http://www.gotreportviewer.com/

#3


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 RDLC Report Definition Language Client-side.

我一直认为RDL和RDLC之间的区别在于RDL用于SQL Server Reporting Services,而RDLC用于Visual Studio以进行客户端报告。实现和编辑几乎完全相同。 RDL代表报告定义语言和RDLC报告定义语言客户端。

I hope that helps.

我希望有所帮助。

#4


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.

根据我的经验,如果您需要在大型报告中获得高性能(这在很大程度上取决于您的客户端规格),请使用rdlc。此外,rdlc报告可以为您提供全方位的数据控制,您可以通过使用客户端报告来节省自己浪费的数据库旅行等。在我正在进行的项目中,关键报告需要大约2分钟才能在服务器端呈现,并且几乎取出了它在那个时间点击的任何报告服务器。将其切换到客户端渲染,我们看到性能更接近20-40秒,报表服务器上没有负载,使用的带宽更少,因为只下载了数据集。

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.

您的里程可能会有所不同,我发现rdlc增加了开发和维护的复杂性,尤其是当您的报告被设计为服务器端报告时。

#5


Some of these points have been addressed above, but here's my 2-cents for VS2008 environment.

上面已经解决了其中一些问题,但这是VS2008环境的2美分。

RDL (Remote reports): Much better development experience, more flexibility if you need to use some advanced features like scheduling, ad-hoc reporting, etc...

RDL(远程报告):如果您需要使用一些高级功能,如调度,临时报告等,可以获得更好的开发体验,更大的灵活性......

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.

RDLC(本地报告):在将数据发送到报告之前更好地控制数据(在将数据发送到报告之前更容易验证或操作数据)。部署更容易,不需要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.

本地报告的一个巨大警告是已知的内存泄漏,如果您的客户端将运行大量大型报告,则会严重影响性能。这应该通过报告查看器的新VS2010版本来解决。

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.

就我而言,由于我们有一个可用的Reporting Services实例,我将新报告开发为RDL,然后将它们转换为本地报告(这很容易)并将它们部署为本地报告。

#6


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开发更加愉快。您可以预览报告,轻松设置参数等。

#7


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.

虽然我目前倾向于RDL,因为它似乎更灵活,更易于管理,但RDLC的优势在于它似乎可以简化您的许可。由于RDLC不需要Reporting Services实例,因此您无需使用Reporting Services许可证即可使用它。

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/

我不确定这是否仍然适用于较新版本的SQL Server,但有一次如果您选择将SQL Server数据库和Reporting Services实例放在两台不同的计算机上,则需要有两个单独的SQL Server许可证: 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.

您可以Bing获取有关Reporting Services许可的其他类似博客和帖子。

#8


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.

对于VS2008,我相信RDL为您提供比RDLC更好的编辑功能。例如,我可以使用RDL更改文本框中选定文本量的粗体,而在RDLC中则不可能。

RDL: abcd efgh ijklmnop

RDL:abcd efgh ijklmnop

RDLC: abcd efgh ijklmnop -or- abcd efgh ijklmnop (are your only options)

RDLC:abcd efgh ijklmnop -or- abcd efgh ijklmnop(是你唯一的选择)

This is because RDLC is using a earlier namespace/formatting from 2005, while RDL is using 2008. This however will change with VS2010

这是因为RDLC使用的是2005年以前的命名空间/格式,而RDL正在使用2008.但是这会随VS2010而改变

#9


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.

如果我们的报告数量较少,那些复杂程度较低且被asp.net网页占用的报告数量较少。最好与rdlc一起使用,原因是我们可以避免维护RS实例上的报告。但是我们必须手动从DB中获取数据并将其绑定到rdlc。

Cons:designing rdlc in visual studio is little difficult compared to SSrs designer.

缺点:与SSrs设计师相比,在visual studio中设计rdlc有点困难。

Pro:Maintenance is easy. while exporting the report from we page,observed that performance gain compared to server side reports.

亲:维护很简单。从我们页面导出报告时,观察到与服务器端报告相比的性能提升。

#10


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

如果你想在asp.net中使用报告,那么如果要在报告生成器/报告服务器中使用/ view,则使用.rdl然后只需通过手动转换格式就可以使用.rdlc

#1


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.

I.一般而言,RDL报告是HOSTED报告。这意味着您需要实施SSRS服务器。它们是SQL Server内置的Visual Studio扩展,用于报告语言。安装SSRS时,您应该添加一个名为“Business Intelligence Development Studio”的附加组件,与使用它相比,它更容易使用报表。

R eport

D efinition

L angauge

Benefits of RDL reports:

RDL报告的好处:

  1. You can host the reports in an environment that has services running for you on them.
  2. 您可以在具有为其运行服务的环境中托管报告。

  3. You can configure security on an item or inheriting level to handle security as a standalone concept
  4. 您可以在项目或继承级别上配置安全性,以将安全性作为独立概念来处理

  5. You can configure the service to send out emails(provided you have an SMTP server you have access to) and save files on schedules
  6. 您可以将服务配置为发送电子邮件(前提是您有可访问的SMTP服务器)并将文件保存在日程表中

  7. You have a database generally called 'ReportServer' you can query for info on the reports once published.
  8. 您有一个通常称为“ReportServer”的数据库,您可以在发布后查询报告的信息。

  9. You can access these reports still through 'ReportViewer' in a client application written in ASP.NET, WPF (with a winform control bleh!), or Winforms in .NET using 'ProcessingMode.Remote'.
  10. 您仍然可以通过使用ASP.NET,WPF编写的客户端应用程序中的“ReportViewer”(带有winform控件!)或使用“ProcessingMode.Remote”的.NET中的Winforms来访问这些报表。

  11. You can set parameters a user can see and use to gain more flexibility.
  12. 您可以设置用户可以查看和使用的参数以获得更大的灵活性。

  13. You can configure parts of a report to be used for connection strings as 'Data Sources' as well as a sql query, xml, or other datasets as a 'Dataset'. These parts and others can be stored and configured to cache data on a regular basis.
  14. 您可以将用于连接字符串的报表部分配置为“数据源”以及将sql查询,xml或其他数据集配置为“数据集”。可以存储和配置这些部件和其他部件以定期缓存数据。

  15. You can write .NET proxy classes of the services http:// /ReportServer/ReportingService2010 or /ReportExecution2005. You can then make up your OWN methods in .NET for emailing, saving, or manipulating SSRS data from the service directly of a Server hosting SSRS reports in code. Programmatically Export SSRS report from sharepoint using ReportService2010.asmx
  16. 您可以编写服务http:// / ReportServer / ReportingService2010或/ ReportExecution2005的.NET代理类。然后,您可以在.NET中构建自己的OWN方法,以便直接从托管SSRS报告的服务器的服务中通过电子邮件发送,保存或操作SSRS数据。使用ReportService2010.asmx以编程方式从sharepoint导出SSRS报告

Downsides:

  1. SSRS is kind of wonkey compared to other things on getting it up fast. Most people get confused by the security policy and designing reports as an 'add on' to VS. SQL 2005 = VS BIDS 2005 , SQL 2008 = VS BIDS 2008, SQL 2012 = VS BIDS 2010(LOL).
  2. SSRS与快速上升的其他东西相比是一种胜利。大多数人对安全策略感到困惑,并将报告设计为VS的“附加”。 SQL 2005 = VS BIDS 2005,SQL 2008 = VS BIDS 2008,SQL 2012 = VS BIDS 2010(LOL)。

  3. Continuing on 1 the policy for security settings IMHO are idiotically overcomplex. There is server security, database security and roles, two security settings on the page hosted for the service. Most people only set up an admin than can't get in and wonder why other users cannot. Most common complaint or question on SSRS is related to getting in generally from my experience.
  4. 继续1安全设置的政策恕我直言是愚蠢的过于复杂。服务器安全性,数据库安全性和角色,为服务托管的页面上有两个安全设置。大多数人只设置一个管理员而不能进入,并想知道为什么其他用户不能。关于SSRS的最常见的抱怨或问题与从我的经验中获得的一般情况有关。

  5. You can use 'expressions' that will supposeduly 'enhance' your report. Often times you do more than a few and your report goes to a crawl in performance.
  6. 您可以使用“表达式”来表示“增强”您的报告。通常情况下,您执行的操作不止一些,而且您的报告会在性能方面进行爬行。

  7. You have a set amount of things you can do and export to. SSRS has no hover over reporting I know of without a javascript hack.
  8. 您有一定数量的事情可以做并导出。没有javascript hack,SSRS没有悬停在我知道的报告上。

  9. Speed and performance can take a hit as the stupid SSRS config recycles the system and a first report can take a while at times just loading the site. You can get around this by altering it but I have found making a keep alive service for it works better.
  10. 速度和性能可能会受到影响,因为愚蠢的SSRS配置会回收系统,并且第一次报告有时会在加载站点时花费一些时间。你可以通过改变它来解决这个问题,但我发现它可以提供更好的服务。

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.

II。 RDLC报告是客户端包含的报告,不会在任何地方出现。名称中的额外c表示“客户”。通常,这是RDL语言的扩展,仅适用于Visual Studio客户端应用程序。当您添加“报告”项时,它存在于Visual Studio中。

Benefits of RDLC reports:

RDLC报告的好处:

  1. You can hookup a wcf service much much much more easier to the dataset.
  2. 您可以更加轻松地将数据集连接到wcf服务。

  3. You have more control over the dataset and can use POCO classes filled with Entity framework objects or ADO.NET directly as well as tables themselves. You can monkey with the data for optimization it before binding it to the report.
  4. 您可以更好地控制数据集,并且可以直接使用填充了Entity框架对象或ADO.NET的POCO类以及表本身。在将数据绑定到报表之前,您可以使用数据进行优化。

  5. You can customize the look more with add on's directly in code behind.
  6. 你可以直接在后面的代码中添加on来自定义外观。

Downsides:

  1. You need to handle parameters on your own and while you can implement wrapper methods to help the legwork is a little more than expected and unfortunate.
  2. 你需要自己处理参数,同时你可以实现包装方法,以帮助腿部工作比预期和不幸多一点。

  3. The user cannot SEE the parameters in a 'ReportViewer' control unless it is in remote mode and accessing an RLD report. Thus you need to make textboxes, dropdowns, radio buttons on your own outside the control to pass to it. Some people like this added control, I do not personally.
  4. 除非处于远程模式并访问RLD报告,否则用户无法在“ReportViewer”控件中查看参数。因此,您需要在控件外部自己创建文本框,下拉列表,单选按钮以传递给它。有些人喜欢这样增加了控制力,我个人并不喜欢。

  5. Anything you want to do with servicing the reports for distribution you need to build yourself. Emailing, subscriptions, saving. Sorry you need to build that in .NET or else implement a proxy that already does that from above you could just be getting using hosted reports.
  6. 您需要为报告分发服务而做的任何事情都需要自己构建。通过电子邮件发送,订阅,保存。对不起,您需要在.NET中构建它,或者实现一个已经从上面执行此操作的代理,您可能只是使用托管报告。

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 it's 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.

老实说,我喜欢两种用途。如果我想向分析师询问他们是否一直使用并调整图形,图表,钻取和导出到Excel,我使用RDL并让SSRS的网站完成处理电子邮件分发的所有工作。如果我想要一个具有报告部分的应用程序,并且我知道应用程序是它自己的带有规则和治理的模块,我使用RDLC并且参数更小并且由用户做出的决定驱动,然后才能获得报告的部分内容他们所在的客户和网站,然后他们通常只选择一个时间范围或类型,而不是更多。因此,一般来说,我会使用RDL的复杂报告,对于简单的事情,我会使用RDLC恕我直言。

I hope that helps.

我希望有所帮助。

#2


Q: What is the difference between RDL and RDLC formats?

A: RDL files are created by the SQL Server 2005 version of Report Designer. RDLC files are created by the Visual Studio 2008 version of Report Designer.

答:RDL文件由SQL Server 2005版本的报表设计器创建。 RDLC文件由Visual Studio 2008版本的报表设计器创建。

RDL and RDLC formats have the same XML schema. However, in RDLC files, some values (such as query text) are allowed to be empty, which means that they are not immediately ready to be published to a Report Server. The missing values can be entered by opening the RDLC file using the SQL Server 2005 version of Report Designer. (You have to rename .rdlc to .rdl first.)

RDL和RDLC格式具有相同的XML架构。但是,在RDLC文件中,某些值(例如查询文本)可以为空,这意味着它们不会立即准备好发布到报表服务器。可以使用SQL Server 2005版本的报表设计器打开RDLC文件来输入缺少的值。 (您必须先将.rdlc重命名为.rdl。)

RDL files are fully compatible with the ReportViewer control runtime. However, RDL files do not contain some information that the design-time of the ReportViewer control depends on for automatically generating data-binding code. By manually binding data, RDL files can be used in the ReportViewer control. New! See also the RDL Viewer sample program.

RDL文件与ReportViewer控件运行时完全兼容。但是,RDL文件不包含ReportViewer控件的设计时间依赖于自动生成数据绑定代码的一些信息。通过手动绑定数据,可以在ReportViewer控件中使用RDL文件。新!另请参阅RDL Viewer示例程序。

Note that the ReportViewer control does not contain any logic for connecting to databases or executing queries. By separating out such logic, the ReportViewer has been made compatible with all data sources, including non-database data sources. However this means that when an RDL file is used by the ReportViewer control, the SQL related information in the RDL file is simply ignored by the control. It is the host application's responsibility to connect to databases, execute queries and supply data to the ReportViewer control in the form of ADO.NET DataTables.

请注意,ReportViewer控件不包含用于连接到数据库或执行查询的任何逻辑。通过分离出这样的逻辑,ReportViewer已经与所有数据源兼容,包括非数据库数据源。但是,这意味着当ReportViewer控件使用RDL文件时,控件将忽略RDL文件中的SQL相关信息。主机应用程序负责以ADO.NET DataTables的形式连接到数据库,执行查询并向ReportViewer控件提供数据。

http://www.gotreportviewer.com/

#3


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 RDLC Report Definition Language Client-side.

我一直认为RDL和RDLC之间的区别在于RDL用于SQL Server Reporting Services,而RDLC用于Visual Studio以进行客户端报告。实现和编辑几乎完全相同。 RDL代表报告定义语言和RDLC报告定义语言客户端。

I hope that helps.

我希望有所帮助。

#4


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.

根据我的经验,如果您需要在大型报告中获得高性能(这在很大程度上取决于您的客户端规格),请使用rdlc。此外,rdlc报告可以为您提供全方位的数据控制,您可以通过使用客户端报告来节省自己浪费的数据库旅行等。在我正在进行的项目中,关键报告需要大约2分钟才能在服务器端呈现,并且几乎取出了它在那个时间点击的任何报告服务器。将其切换到客户端渲染,我们看到性能更接近20-40秒,报表服务器上没有负载,使用的带宽更少,因为只下载了数据集。

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.

您的里程可能会有所不同,我发现rdlc增加了开发和维护的复杂性,尤其是当您的报告被设计为服务器端报告时。

#5


Some of these points have been addressed above, but here's my 2-cents for VS2008 environment.

上面已经解决了其中一些问题,但这是VS2008环境的2美分。

RDL (Remote reports): Much better development experience, more flexibility if you need to use some advanced features like scheduling, ad-hoc reporting, etc...

RDL(远程报告):如果您需要使用一些高级功能,如调度,临时报告等,可以获得更好的开发体验,更大的灵活性......

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.

RDLC(本地报告):在将数据发送到报告之前更好地控制数据(在将数据发送到报告之前更容易验证或操作数据)。部署更容易,不需要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.

本地报告的一个巨大警告是已知的内存泄漏,如果您的客户端将运行大量大型报告,则会严重影响性能。这应该通过报告查看器的新VS2010版本来解决。

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.

就我而言,由于我们有一个可用的Reporting Services实例,我将新报告开发为RDL,然后将它们转换为本地报告(这很容易)并将它们部署为本地报告。

#6


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开发更加愉快。您可以预览报告,轻松设置参数等。

#7


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.

虽然我目前倾向于RDL,因为它似乎更灵活,更易于管理,但RDLC的优势在于它似乎可以简化您的许可。由于RDLC不需要Reporting Services实例,因此您无需使用Reporting Services许可证即可使用它。

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/

我不确定这是否仍然适用于较新版本的SQL Server,但有一次如果您选择将SQL Server数据库和Reporting Services实例放在两台不同的计算机上,则需要有两个单独的SQL Server许可证: 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.

您可以Bing获取有关Reporting Services许可的其他类似博客和帖子。

#8


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.

对于VS2008,我相信RDL为您提供比RDLC更好的编辑功能。例如,我可以使用RDL更改文本框中选定文本量的粗体,而在RDLC中则不可能。

RDL: abcd efgh ijklmnop

RDL:abcd efgh ijklmnop

RDLC: abcd efgh ijklmnop -or- abcd efgh ijklmnop (are your only options)

RDLC:abcd efgh ijklmnop -or- abcd efgh ijklmnop(是你唯一的选择)

This is because RDLC is using a earlier namespace/formatting from 2005, while RDL is using 2008. This however will change with VS2010

这是因为RDLC使用的是2005年以前的命名空间/格式,而RDL正在使用2008.但是这会随VS2010而改变

#9


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.

如果我们的报告数量较少,那些复杂程度较低且被asp.net网页占用的报告数量较少。最好与rdlc一起使用,原因是我们可以避免维护RS实例上的报告。但是我们必须手动从DB中获取数据并将其绑定到rdlc。

Cons:designing rdlc in visual studio is little difficult compared to SSrs designer.

缺点:与SSrs设计师相比,在visual studio中设计rdlc有点困难。

Pro:Maintenance is easy. while exporting the report from we page,observed that performance gain compared to server side reports.

亲:维护很简单。从我们页面导出报告时,观察到与服务器端报告相比的性能提升。

#10


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

如果你想在asp.net中使用报告,那么如果要在报告生成器/报告服务器中使用/ view,则使用.rdl然后只需通过手动转换格式就可以使用.rdlc