【问题标题】:Dynamic selection of dataset in SSRSSSRS中数据集的动态选择
【发布时间】:2023-03-14 13:55:01
【问题描述】:

我打算使用 SSRS 2005 设计一个报告。是否可以动态选择数据集?

假设我将有两个表,其中第一个是摘要,第二个是详细数据。我的参数之一(值为SummaryDetail)将确定要显示哪个版本的报告。我可以有两个不同的数据集,并在单击参数视图对话框(或之前)中的查看报告按钮时设置将使用哪个数据集?

【问题讨论】:

    标签: sql-server dynamic reporting-services dataset


    【解决方案1】:

    您可能必须在一个矩形中包含 2 对表格,并隐藏未使用的表格(在容器级别)。或者使用子报表。

    如果您找到了切换数据集的方法,那么您必须确保所有列都相同,并确保使用 DataSet 作为范围参数的任何函数也被更改......这让我认为它只是不受支持。

    【讨论】:

      【解决方案2】:

      如果您有两个单独的表并根据所做的选择隐藏一个或另一个,则创建和维护会更容易。

      我还没有尝试过,但我认为另一种可能性是使用三个报告:一个容器、一个摘要子报告和一个详细子报告。根据选择在子报表之间切换。

      虽然第一个实现存在性能问题。 SSRS 将在加载时尝试填充报表中的每个数据集,即使是报表输出中或其他数据集或表达式未使用的数据集。换句话说,仅仅因为您正在显示摘要报告,并不意味着您没有要求数据库也填写您的详细数据。

      有一种解决方法可以稍微提高性能,但最终还是会访问服务器。 hack 是设置一个标志参数来确定查询是否应该实际返回任何实际结果,或者它是否应该只返回您想要的列。

      【讨论】:

        【解决方案3】:

        您可能希望尝试使用单个数据集,并在报告中具有摘要和详细数据区域(表,列表等),其中一个是可见的,其中一个不是。在这种情况下,数据集仅评估一次,您仍然满足您的要求。

        希望这会有所帮助,

        比尔

        【讨论】:

          【解决方案4】:

          您可以通过使用 switch 语句来使用单个数据集,如下所示: 您可以在数据选项卡中键入此内容,但结果只能在预览选项卡中看到,而不能像常规查询那样在数据选项卡中看到。

          =Switch(Parameters!ToDecide.Value = "Summary",
          "Your query for Summary", 
          Parameters!ToDecide.Value = "Detail",
          "Your query for Detail") 
          
          1. 确保查询中没有多余的空格(需要时不超过一个空格)
          2. 这两个查询都应返回布局中表格所需的值。

          【讨论】:

            【解决方案5】:

            您可以尝试添加取决于要执行的 cetain 参数的条件。然后从那里,您可以使用不同的数据集。假设您将在单独的隐藏 tablix 上使用它。

            【讨论】:

              猜你喜欢
              • 2019-09-30
              • 2015-10-17
              • 1970-01-01
              • 2021-10-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-09-23
              • 1970-01-01
              相关资源
              最近更新 更多