gpt4 book ai didi

reporting-services - 何时在 RDL 报告上使用 RDLC?

转载 作者:行者123 更新时间:2023-12-03 04:39:28 29 4
gpt4 key购买 nike

过去几周我一直在研究 SSRS 2005/2008 并创建了一些服务器端报告。对于某些应用程序,一位同事建议我针对该特定情况研究 RDLC。我现在试图弄清楚 RDL 和 RDLC 之间的主要区别。

搜索这些信息最多只能产生碎片化的信息。我了解到:

  • RDLC 报告不存储有关如何获取数据的信息。
  • RDLC 报告可以由 ReportViewer 控件直接执行。

  • 但是我仍然没有完全理解 RDLC 文件和其他相关系统(报告服务器、源数据库、客户端)之间的关系。

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

    更新:

    thread on the ASP.NET forums讨论同样的问题。从中,我对这个问题有了更好的了解。

    RDLC 的一个特点是它可以运行 完全客户端在 ReportViewer 控件中。
  • 这消除了对 Reporting Services 实例的需要,甚至消除了对任何数据库连接的需要,但是:
  • 它增加了必须手动提供报告中所需数据的要求。

  • 这是优势还是劣势取决于特定的应用。

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

    最佳答案

    根据我的经验,两件事都需要考虑:

    一、RDL 报告一般是托管报告。这意味着您需要实现 SSRS 服务器。它们是来自 SQL Server 的 Visual Studio 的内置扩展,用于报告语言。当您安装 SSRS 时,您应该有一个名为“商业智能开发工作室”的插件,它比没有它更容易处理报告。

    R 导出

    D 定义

    L 测距

    RDL 报告的好处:

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

  • 缺点:
  • 与快速启动它的其他事情相比,SSRS 有点奇怪。大多数人对安全策略和将报告设计为 VS 的“附加”感到困惑。 SQL 2005 = VS 投标 2005,SQL 2008 = VS 投标 2008,SQL 2012 = VS 投标 2010(笑)。
  • 继续 1 恕我直言,安全设置策略过于复杂。为服务托管的页面上有服务器安全性、数据库安全性和角色,这两个安全设置。大多数人只设置了一个无法进入的管理员,并想知道为什么其他用户不能。关于 SSRS 的最常见的投诉或问题与我的经验有关。
  • 您可以使用可以“增强”您的报告的“表达式”。很多时候,您执行的操作不止一些,而且您的报告的性能会出现爬行。
  • 你有一定数量的事情可以做和导出。 SSRS 在没有 javascript hack 的情况下不会悬停在我所知道的报告上。
  • 速度和性能可能会受到影响,因为愚蠢的 SSRS 配置会回收系统,而且第一份报告有时可能需要一段时间才能加载站点。你可以通过改变它来解决这个问题,但我发现制作一个保持事件的服务效果更好。

  • 二、 RDLC 报告是 CLIENT CONTAINED 报告,不在任何地方托管。名称中额外的 c 表示“客户”。通常,这是 RDL 语言的扩展,仅用于 Visual Studio 客户端应用程序。添加“报告”项时,它存在于 Visual Studio 中。

    RDLC 报告的好处:
  • 您可以更轻松地将 wcf 服务连接到数据集。
  • 您可以更好地控制数据集,并且可以直接使用填充有 Entity Framework 对象或 ADO.NET 的 POCO 类以及表本身。在将数据绑定(bind)到报告之前,您可以使用数据对其进行优化。
  • 您可以直接在后面的代码中使用附加组件自定义外观。

  • 缺点:
  • 你需要自己处理参数,虽然你可以实现包装器方法来帮助跑腿,但有点超出预期而且很不幸。
  • 除非处于远程模式并访问 RLD 报告,否则用户无法查看“ReportViewer”控件中的参数。因此,您需要在控件之外自行制作文本框、下拉菜单、单选按钮以传递给它。有些人喜欢这样加控制,我个人没有。
  • 您想要为分发报告提供服务的任何事情都需要您自己构建。电子邮件、订阅、保存。抱歉,您需要在 .NET 中构建它,或者实现一个已经从上面执行此操作的代理,您可能只是使用托管报告。

  • 老实说,出于不同的目的,我喜欢两者。如果我想向分析师提供一些他们一直使用的东西,并调整图形、图表、向下钻取和导出到 Excel,我使用 RDL,只需让 SSRS 的站点完成处理电子邮件分发的所有跑腿工作。如果我想要一个具有报告部分的应用程序,并且我知道该应用程序是它自己的具有规则和治理的模块,我使用 RDLC 并让参数更小,并由用户在进入报告部分之前做出的决定驱动他们在现场的客户,然后他们通常只选择一个时间范围或类型,仅此而已。所以一般来说,复杂的报告我会使用 RDL,而对于一些简单的报告,我会使用 RDLC 恕我直言。

    我希望这有帮助。

    关于reporting-services - 何时在 RDL 报告上使用 RDLC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1079162/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com