【问题标题】:SSRS Subreport's dataset run multiple timesSSRS 子报表的数据集运行多次
【发布时间】:2020-03-29 11:25:12
【问题描述】:

我有一个子报表,它使用主报表中的参数来过滤数据。子报表的数据集是相同的,但 SSRS 不断调用 SQL 来为主报表中的每个父级获取它。

我已经为所有数据集设置了缓存,并将参数设置为不被查询使用。 无论如何设置子报表的数据集只运行一个,然后使用参数过滤子报表中的数据?

这是我的查询示例

主报告:从类(数据集 1)中选择 ClassID、ClassName

子报告:从学生(数据集 2)中选择 ClassID、StudentName

主报告将 ClassID 作为参数传递给子报告。子报表将使用它作为数据集 2 的过滤器,并在子报表中返回具有相同 ClassID 的 StudentName

我的问题是如果数据集 1 返回 8 行,那么子报表将运行数据集 2 8 次。

【问题讨论】:

    标签: reporting-services dataset ssrs-tablix subreport


    【解决方案1】:

    您是否尝试过使用分离的数据集?我曾经遇到过类似的问题,结果证明是某种循环。

    【讨论】:

      【解决方案2】:

      如果您使用数据集过滤器而不是报表参数,它将能够利用报表缓存。

      【讨论】:

      • 我将 ID 作为报告参数传递,因此我可以将其用作数据集过滤器。
      • 不同之处在于您是在数据集的 SQL 中应用过滤器,还是在查询运行后作为数据集上的过滤器。如果每次都更改SQL,则无法使用缓存。
      猜你喜欢
      • 1970-01-01
      • 2017-03-16
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多