Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSRS错误-“;报表项表达式只能引用当前数据集范围内的字段,如果在聚合范围内,则只能引用_Sql Server_Reporting Services_Sql Server 2016 - Fatal编程技术网

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

Sql server SSRS错误-“;报表项表达式只能引用当前数据集范围内的字段,如果在聚合范围内,则只能引用,sql-server,reporting-services,sql-server-2016,Sql Server,Reporting Services,Sql Server 2016,我是SSRS的新手,我不确定它是否会做我想做的事情 我在SSRS中发现以下错误: 文本框“Textbox17”的值表达式引用了字段“DayCnt”。报表项表达式只能引用具有当前数据集作用域的字段,如果在聚合中,则只能引用具有指定数据集作用域的字段。字段名称中的字母大小写必须正确 我有一个3行3列的列表。我需要跨行和列使用多个数据集。我希望报告中的所有内容都按学校ID分组,每个数据集都有 在某些情况下,我将在每个单元格中使用多个数据集,并使用文本框,然后将数据集字段拖到其中。我不确定分组是否是问题

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

我在SSRS中发现以下错误:

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

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

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

我怎样才能使列表中的所有内容都基于学校ID

谢谢你的帮助


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

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

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

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

=First(Fields!MyField.Value)
vs

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

  • 将字段拖动到报表中时,它创建的表达式不会指定数据集
  • 将字段拖动到报表中时,它会更改当前数据集
这会导致以下令人恼火的行为:

  • 创建一个数据区域
  • 将其分组设置为
    Dataset1
    中的字段
  • Dataset1
    中拖入一个字段
  • 运行报告。它起作用了
  • Dataset2
    中拖入一个字段。正如您所期望的那样,RB将自动使用聚合函数
  • 再次运行报告。现在,您得到一个错误,不是在任何一个字段上,而是在数据区域的分组上
  • 问题在于,在字段中从
    Dataset2
    拖动会将当前数据集更改为
    Dataset2
    ,并在未明确指定的情况下中断使用
    Dataset1
    的所有内容。解决方案是有漏洞的:

  • Dataset2
    手动更改所有字段的表达式,使其显式引用数据集,或
  • 通过从
    Dataset1
    拖动字段并将其删除,重置当前数据集

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

    谢谢您的回复@Long您是否可以使用多个表利用多个数据集?@JM1,您可以,并且您可以使用不同的表或矩阵在一份报告中显示不同的数据集。目标是每页都有来自一所学校的所有数据,所以如果我使用多个表,我会根据schoolID对每个表进行分组?谢谢。这不是一个好的设计,如果你按每个表分组,你无法控制让SSR每页显示一所学校,你可以实现你的目标的方式就像我发布的一样,尝试构建一个查询,返回你所有的学校信息。
    =First(Fields!MyField.Value, "MyDataset")