何时通过RDL报告使用RDLC?

过去几周我一直在研究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. RDL报告通常是HOSTED报告。 这意味着您需要实施SSRS服务器。 它们是SQL Server中用于报告语言的Visual Studio的扩展。 当你安装SSRS时,你应该有一个名为“商业智能开发工作室”的附加组件,与报告相比,使用报告要容易得多。

    [R扩展端口

    d efinition

    L angauge

    RDL报告的好处:

  • 您可以将这些报告托管在具有为您运行的服务的环境中。
  • 您可以配置项目的安全性或继承级别来处理安全性作为独立概念
  • 您可以将服务配置为发送电子邮件(前提是您拥有有权访问的SMTP服务器)并按计划保存文件
  • 您有一个通常称为'ReportServer'的数据库,您可以查询发布后的报告信息。
  • 您仍然可以通过用ASP.NET,WPF(带有winform控件bleh!)编写的客户端应用程序中的'ReportViewer',或者使用'ProcessingMode.Remote'在.NET中使用Winforms来访问这些报告。
  • 您可以设置用户可以看到并使用的参数,以获得更大的灵活性。
  • 您可以将用于连接字符串的报告部分配置为“数据源”,以及将sql查询,xml或其他数据集配置为“数据集”。 这些部分和其他部分可以存储和配置为定期缓存数据。
  • 您可以编写服务http:// / ReportServer / ReportingService2010或/ ReportExecution2005的.NET代理类。 然后,您可以使用.NET构建自己的OWN方法,用于通过代码直接从托管SSRS报告的服务器向服务发送,保存或操作SSRS数据。 使用ReportService2010.asmx以编程方式导出来自Sharepoint的SSRS报告
  • 缺点:

  • 与其他方面相比,SSRS更像一把钥匙。 大多数人对安全策略和设计报告感到困惑,认为这是VS的“附加”。 SQL 2005 = VS BIDS 2005,SQL 2008 = VS BIDS 2008,SQL 2012 = VS BIDS 2010(LOL)。
  • 继续1安全设置恕我直言的政策是白痴过度复杂。 服务器安全性,数据库安全性和角色,为服务托管的页面上有两个安全设置。 大多数人只设置一个管理员而不能进入,并想知道为什么其他用户不能。 关于SSRS的最常见的投诉或问题与通常取决于我的经验有关。
  • 您可以使用“表达式”来推断您的报告。 通常情况下,你会做更多的事情,并且你的报告会在性能上爬行。
  • 你有一定数量的事情可以做和输出到。 SSRS没有悬停在报道我知道没有JavaScript的黑客。
  • 速度和性能可能会受到影响,因为愚蠢的SSRS配置会回收系统,并且第一次报告可能需要一段时间才会加载网站。 你可以通过改变它来解决这个问题,但是我发现为它做一个保持活性的服务会更好。
  • II。 RDLC报告是客户不包含的任何地方的报告。 名字中的额外c意味着'客户'。 通常,这是RDL语言的扩展,仅用于Visual Studio客户端应用程序。 当您添加“报告”项目时,它存在于Visual Studio中。

    RDLC报告的好处:

  • 您可以更容易地将数据集连接到wcf服务。
  • 您可以更好地控制数据集,并且可以直接使用充满Entity框架对象或ADO.NET的POCO类以及表格本身。 在绑定到报告之前,您可以使用数据进行优化。
  • 您可以直接在后面的代码中使用附加功能自定义外观。
  • 缺点:

  • 您需要自行处理参数,并且您可以实施包装方法,以帮助您的作业稍微超出预期和不幸。
  • 除非处于远程模式并访问RLD报告,否则用户无法查看“ReportViewer”控件中的参数。 因此,您需要在控件外部制作文本框,下拉列表,单选按钮以传递给它。 有些人喜欢这种控制,我个人不喜欢。
  • 任何你想要做的事情都是为了维护发布的报告,你需要建立你自己。 电子邮件,订阅,保存。 对不起,你需要在.NET中构建它,或者实现一个已经从上面完成的代理,你可以使用托管报告。
  • 老实说,我喜欢两种不同的目的。 如果我希望分析师能够随时使用并调整图表,图表,深入分析和导出到Excel,那么我使用RDL,并且只需要SSRS的网站完成处理电子邮件分发的所有工作。 如果我想要一个具有报告部分的应用程序,并且我知道应用程序是包含规则和治理的自己的模块,那么我使用RDLC并使参数更小,并由用户在做出报告之前做出的决定来驱动部分内容客户他们在和网站,然后他们通常只是选择一个时间框架或类型,没有更多。 所以通常我会使用RDL的复杂报告,并且为了简单起见,我会使用RDLC恕我直言。

    我希望有所帮助。


    问:RDL和RDLC格式有什么区别?

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

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

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

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

    http://www.gotreportviewer.com/


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

    我希望有所帮助。

    链接地址: http://www.djcxy.com/p/65745.html

    上一篇: When to use RDLC over RDL reports?

    下一篇: Is it possible to target CSS3 columns individually with selectors?