【问题标题】:SSRS Error - "Report item expressions can only refer to fields within the current dataset scope or, if inside an aggregateSSRS 错误 - “报表项表达式只能引用当前数据集范围内的字段,或者,如果在聚合内
【发布时间】:2017-07-12 12:10:45
【问题描述】:

我是 SSRS 的新手,我不确定它是否会做我想做的事情。

我在 SSRS 中收到以下错误:

“文本框 'Textbox17' 的值表达式引用字段 'DayCnt'。报表项表达式只能引用具有当前数据集范围的字段,或者如果在聚合内,则只能引用指定的数据集范围。字段名称中的字母必须使用正确的大小写。”

我有一个 3 行 3 列的列表。我需要在行和列中使用多个数据集。我希望报告中的所有内容都按学校 ID 分组,每个数据集都有。

在某些情况下,我将在每个单元格中使用多个数据集,我使用的是文本框,然后将数据集字段拖入其中。我不确定分组是否是问题。我不确定如何一次对整个列表进行分组,或者它是否基于行,或者分组如何与具有多列的列表一起使用。

如何根据学校 ID 获取列表中的所有内容?

感谢您的帮助。

【问题讨论】:

    标签: sql-server reporting-services sql-server-2016


    【解决方案1】:

    您不能只在一个 SSRS 表上使用不同的数据集。一张表应该只引用一个数据集。

    您的问题的解决方案是:重新创建数据集(查询),如果它们位于不同的服务器实例上,则尝试使用分布式查询获取一个数据集,或者在它们位于同一服务器上时指定数据库名称。

    【讨论】:

    • 感谢您的回复@Long 您是否也可以使用多个表来利用多个数据集?
    • @JM1,您可以,而且您可以使用不同的表格或矩阵在一份报告中显示不同的数据集。
    • 目标是每页包含一所学校的所有数据,所以如果我使用多个表,我会根据 schoolID 对每个表进行分组吗?谢谢。
    • 这不是一个好的设计,如果你按每张桌子分组,你无法控制让SSRS每页显示一所学校,实现目标的方式就像我发布的那样,尝试构建一个返回所有学校信息的查询。
    【解决方案2】:

    可以在同一数据区域(表等)中引用多个数据集,但前提是对所有数据集使用聚合函数有意义,但您的分组所在的主要数据集除外基于。我不确定这对您的用例是否有意义。

    聚合函数类似于First。如果不指定数据集,则默认为“当前数据集”。据我所知,当前数据集是一个不可见的默认值,您无法在 UI 中的任何位置看到或设置它。

    =First(Fields!MyField.Value)
    

    对比

    =First(Fields!MyField.Value, "MyDataset")
    

    现在,关于报表生成器 UI,有几件棘手的事情需要了解。

    • 当您将字段拖到报表中时,它创建的表达式指定数据集。
    • 当您将字段拖到报表中时,它会更改当前数据集!

    这会导致令人恼火的行为,例如:

    1. 创建数据区域。
    2. 将其分组设置为来自Dataset1 的字段。
    3. Dataset1拖入一个字段。
    4. 运行报告。有效!
    5. Dataset2 拖入一个字段。如您所料,RB 将自动使用聚合函数。
    6. 再次运行报告。现在您会收到一个错误,不是在您的任何一个字段上,而是在您的数据区域的分组上。

    问题是从Dataset2 拖入该字段将当前数据集更改为Dataset2,并破坏了使用Dataset1 的所有内容而没有明确指定它。解决方案很hacky:

    1. Dataset2 手动更改所有字段的表达式,以便它们明确引用数据集,或者
    2. 通过从Dataset1 拖入一个字段并将其删除来重置当前数据集。

    【讨论】:

      【解决方案3】:

      您可能对数据集进行了一些修改,但没有刷新字段。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多