SQL Server SSRS错误-“报表项表达式只能引用当前数据集范围内的字段,如果在聚合内,则只能引用这些字段

wh6knrhe  于 2023-03-24  发布在  其他
关注(0)|答案(3)|浏览(118)

我是新的SSRS,我不确定它是否会做我想做的事情。
我在SSRS中收到以下错误:

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

我有一个3行3列的列表。我需要跨行和跨列使用多个数据集。我希望报告中的所有内容都按学校ID分组,每个数据集都有学校ID。
在某些情况下,我会在每个单元格中使用多个数据集,我使用一个文本框,然后将数据集字段拖到其中。我不确定分组是否有问题。我不确定如何一次对整个列表进行分组,或者它是否基于行,或者分组如何与具有多列的列表一起工作。
我怎样才能让列表中的所有内容都基于学校ID?

6g8kf2rb

6g8kf2rb1#

您可以在同一个数据区域(表等)中引用多个数据集,但前提是在除分组所基于的主数据集之外的所有数据集上使用聚合函数是有意义的。我不确定这对您的用例是否有意义。
聚合函数类似于First。如果不指定数据集,它将默认为“当前数据集”。当前数据集是一个不可见的默认值,据我所知,您在UI中的任何地方都看不到或无法设置。

=First(Fields!MyField.Value)

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

现在,有一些关于报表生成器UI的棘手问题需要了解。

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

这会导致令人恼火的行为,例如:
1.创建数据区域。
1.将其分组设置为Dataset1中的字段。
1.从Dataset1拖入一个字段。
1.运行报告。它工作!
1.从Dataset2.RB中拖动一个字段,将自动使用聚合函数,正如您所期望的那样。
1.再次运行报表。现在您得到一个错误,但不是在任何一个字段上,而是在数据区域的分组上。
问题是从Dataset2拖动字段会将当前数据集更改为Dataset2,并且在没有显式指定Dataset1的情况下破坏所有使用Dataset1的内容。
1.手动更改Dataset2中所有字段的表达式,使其显式引用数据集,或
1.通过从Dataset1拖动字段并删除来重置当前数据集。

b4wnujal

b4wnujal2#

不能仅在一个SSRS表上使用不同的数据集。一个表应仅引用一个数据集。
你问题的答案是:请重新创建数据集(查询),如果它们位于不同的服务器示例上,请尝试使用分布式查询获取一个数据集,如果它们位于同一服务器上,请指定数据库名称。

cngwdvgl

cngwdvgl3#

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

相关问题