我在过去几周一直在研究SSRS 2005/2008并创建了一些服务器端报告。对于某些应用,一位同事建议我针对该特定情况研究RDLC。我现在试图了解RDL和RDLC之间的主要区别。
搜索此信息最多会产生碎片信息。我了解到:
但我仍然不完全理解RDLC文件与其他相关系统(报告服务器,源数据库,客户端)之间的关系。
为了更好地掌握RDLC文件,我想知道它们的使用与RDL文件的区别,以及在RDL上选择RDLC的情况。也欢迎链接到资源。
thread on the ASP.NET forums讨论了同样的问题。从中,我对这个问题有了更好的了解。
RDLC的一个功能是它可以在ReportViewer控件中完全客户端运行。
这是优势还是劣势取决于具体应用。
在我的应用程序中,无论如何都可以使用Reporting Services实例,并且可以轻松地从数据库中提取所需的报告数据。有什么理由让我考虑RDLC,还是我应该坚持使用RDL?
答案 0 :(得分:75)
根据我的经验,几乎没有什么可以考虑的事情:
予。 RDL报告通常是HOSTED报告。这意味着您需要实施SSRS服务器。它们是SQL Server内置的Visual Studio扩展,用于报告语言。当您安装SSRS时,您应该添加名为“商业智能开发工作室”的附加功能。使用报告比使用报告更容易。
R 电子竞技
D 定义
L angauge
RDL报告的好处:
缺点:
II。 RDLC报告是客户端包含的报告,不会在任何地方出现。名称中的额外c表示'客户'。通常,这是RDL语言的扩展,仅适用于Visual Studio客户端应用程序。当您添加“报告”时,它存在于Visual Studio中。项目
RDLC报告的好处:
缺点:
老实说,我喜欢两种用途。如果我想向分析师询问他们一直使用并调整图表,图表,下钻和导出到Excel,我使用RDL并让SSRS的网站完成处理电子邮件分发的所有工作。如果我想要一个具有报告部分的应用程序,并且我知道应用程序是它自己的规则和治理模块,我使用RDLC并使参数更小并且由用户在进入之前做出的决策驱动报告他们所在的客户端和网站的一部分,然后他们通常只选择时间范围或类型而已。因此,通常我会使用RDL的复杂报告,对于简单的事情,我会使用RDLC恕我直言。
我希望有所帮助。
答案 1 :(得分:55)
问:RDL和RDLC格式有什么区别?
答:RDL文件由SQL创建 Server 2005版本的Report 设计师。 RDLC文件由。创建 Visual Studio 2008版本 报告设计师。
RDL和RDLC格式具有相同的XML 架构。但是,在RDLC文件中,有些 值(例如查询文本)是 允许是空的,这意味着 他们没有立即做好准备 发布到报表服务器。该 可以输入缺失值 使用SQL打开RDLC文件 Server 2005版本的Report 设计师。 (你必须将.rdlc重命名为 .rdl首先。)
RDL文件完全兼容 ReportViewer控件运行时。 但是,RDL文件不包含某些文件 设计时间的信息 ReportViewer控件依赖于 用于自动生成 数据绑定代码。通过手动绑定 数据,RDL文件可以在中使用 ReportViewer控件。新!也可以看看 RDL Viewer示例程序。
请注意ReportViewer控件 不包含任何逻辑 连接数据库或执行 查询。通过分离出这样的逻辑, ReportViewer已经制作完成 兼容所有数据源, 包括非数据库数据源。 但是这意味着当一个RDL ReportViewer使用该文件 控制,SQL相关信息 在RDL文件中简单地忽略 控制。这是主持人 应用程序的责任 连接数据库,执行查询 并向ReportViewer提供数据 以ADO.NET的形式控制 数据表。
答案 2 :(得分:20)
我一直认为RDL和RDLC之间的区别在于RDL用于SQL Server Reporting Services,而RDLC在Visual Studio中用于客户端报告。实现和编辑几乎完全相同。 RDL代表报告定义语言和RDLC报告定义语言客户端。
我希望有所帮助。
答案 3 :(得分:15)
根据我的经验,如果您需要在大型报告中获得高性能(这在很大程度上取决于您的客户端规格),请使用rdlc。此外,rdlc报告可以为您提供全方位的数据控制,您可以通过使用客户端报告来节省自己浪费的数据库旅行等。在我正在进行的项目中,关键报告需要大约2分钟才能在服务器端呈现,并且几乎可以取出它在那个时间点击的任何报告服务器。将其切换到客户端呈现,我们看到性能更接近20-40秒,报表服务器上没有负载,使用的带宽更少,因为只下载了数据集。
您的里程可能会有所不同,我发现rdlc会增加开发和维护的复杂性,尤其是当您的报告被设计为服务器端报告时。
答案 4 :(得分:11)
上面已经解决了其中一些问题,但这是VS2008环境的2美分。
RDL(远程报告):如果您需要使用一些高级功能(如计划,临时报告等),可以获得更好的开发体验,更大的灵活性......
RDLC(本地报告):在将数据发送到报告之前更好地控制数据(在将数据发送到报告之前更容易验证或操纵数据)。部署更容易,不需要Reporting Services实例。
本地报告的一个巨大警告是已知的内存泄漏,如果您的客户端将运行大量大型报告,则会严重影响性能。这应该通过报告查看器的新VS2010版本来解决。
就我而言,由于我们有一个可用的Reporting Services实例,我将新报告开发为RDL,然后将它们转换为本地报告(这很容易)并将它们部署为本地报告。
答案 5 :(得分:7)
如果您有可用的报告服务基础结构,请使用它。您会发现RDL开发更加愉快。您可以预览报告,轻松设置参数等。
答案 6 :(得分:7)
虽然我目前倾向于RDL,因为它似乎更灵活,更易于管理,但RDLC的优势在于它似乎可以简化您的许可。由于RDLC不需要Reporting Services实例,因此您无需使用Reporting Services许可证即可。
我不确定这是否仍然适用于较新版本的SQL Server,但是如果您选择将SQL Server数据库和Reporting Services实例放在两台不同的计算机上,则需要使用两个单独的SQL服务器许可证:
http://social.msdn.microsoft.com/forums/en-US/sqlgetstarted/thread/82dd5acd-9427-4f64-aea6-511f09aac406/
您可以Bing获取有关Reporting Services许可的其他类似博客和帖子。
答案 7 :(得分:2)
对于VS2008,我相信RDL为您提供比RDLC更好的编辑功能。例如,我可以使用RDL更改文本框中选定文本量的粗体,而在RDLC中则不可能。
RDL:abcd efgh ijklmnop
RDLC: abcd efgh ijklmnop - 或者 - abcd efgh ijklmnop(是您唯一的选择)
这是因为RDLC使用的是2005年以前的命名空间/格式,而RDL使用的是2008.但是这会随着VS2010而改变
答案 8 :(得分:1)
如果我们的报告数量较少,那些复杂程度较低且被asp.net网页占用的报告数量较少。 最好使用rdlc,原因是我们可以避免维护RS实例的报告。 但是我们必须手动从DB中获取数据并将其绑定到rdlc。
缺点:与SSrs设计师相比,在visual studio中设计rdlc并不困难。
专业:维护很简单。 从我们页面导出报告时,观察到与服务器端报告相比的性能提升。
答案 9 :(得分:-3)
如果你想在asp.net中使用报告,那么使用.rdl 如果要在报表生成器/报表服务器中使用/ view,请使用.rdlc 只需手动转换格式就可以了