SSRS表达式:textbox的值表达式具有对聚合无效的scope参数

Use*_*999 17 aggregate concatenation reporting-services ssrs-2008 ssrs-expression

我收到以下错误:

Error   1   [rsInvalidAggregateScope] The Value expression for the text box 
‘Textbox2’ has a scope parameter that is not valid for an aggregate function.  
The scope parameter must be set to a string constant that is equal to either 
the name of a containing group, the name of a containing data region, or 
the name of a dataset.
Run Code Online (Sandbox Code Playgroud)

我的Textbox2背后的表达式(我添加了一些空格以便于阅读):

Iif(Parameters!ReportParameterPersoneelsNr.Value.Equals(String.Empty),

       "Prestaties " + First(Fields!firmanaam.Value, "DataSetHrm") + 
        "(" + First(Fields!indienstfirmanr.Value, "DataSetHrm") + ")",

       "Prestaties " + First(Fields!naam.Value, "DataSetHrm") + " " +
       First(Fields!voornaam.Value, "DataSetHrm") + 
       "(" + First(Fields!personeelsnr.Value, "DataSetHrm") + ")")
Run Code Online (Sandbox Code Playgroud)

田野:

      ReportParameterPersoneelsNr = Reportparameter of type Text
      firmanaam.Value = VARCHAR
      indienstfirmanr.Value = Long
      naam.Value = VARCHAR
      voornaam.Value = VARCHAR
      personeelsnr.Value = Long
Run Code Online (Sandbox Code Playgroud)

对Stackoverflow的搜索给我带来了以下结果.但到目前为止,他们还没有帮助我解决我的问题

Post 1:what-does-scope-parameter-that-not-valid-for-an-aggregate-function-mean

帖子2:SqlTeam

有人能指出我做错了吗?

注意:在任何地方添加tostring()都无济于事

注意2:用'&'替换'+'也不能解决问题

注3:数据集名称正确,数据集是此SSRS报告中唯一存在的数据集:

图片Tds

更新:数据集包含的数据有效,并且读取数据集不起作用(尝试使用和不使用别名)

ped*_*ram 8

有时这个错误发生在我们使用不同DatasetName的时候Experssion.

就像在我的情况下,我通过做下面的事情解决了这个错误,

在下面之前,

="For Man " + 
   IIF(Len(First(Fields!Lname.Value, "DataSet1")) > 0,
   First(Fields!Lname.Value, "DataSet1"),"") & IIF(Len(First(Fields!Fname.Value, "DataSet1")) > 0,
   ", " + First(Fields!Fname.Value, "DataSet1"),"")
Run Code Online (Sandbox Code Playgroud)

把它改成下面后现在工作正常,

="For Man " + 
    IIF(Len(First(Fields!Lname.Value, "LastChangedDataSetName")) > 0,
    First(Fields!Lname.Value, "LastChangedDataSetName"),"") & IIF(Len(First(Fields!Fname.Value, "LastChangedDataSetName")) > 0,
    ", " + First(Fields!Fname.Value, "LastChangedDataSetName"),"")
Run Code Online (Sandbox Code Playgroud)

注意:所以这里的错误是我已经将 DataSet Name From更改DataSet1LastChangedDataSetName并且仍然Expression在更改 DataSet Name之前更改了我已经写过的名称.


Fil*_*let 6

我不知道出了什么问题,但是创建了一个类似的报告.创建一个新的空白报告,然后使用以下查询创建一个数据集(来自SQL Server):

SELECT'ACME'AS firmanaam,10000 AS indienstfirmanr,'Doe'AS naam,'Jon'AS voornaam,987654 AS personeelsnr

DataSet图像

然后添加您的参数

参数定义

在报告中添加一个文本框,代码如下:

= Iif(Parameters!ReportParameterPersoneelsNr.Value.Equals(String.Empty), "Prestaties " & First(Fields!firmanaam.Value, "DataSetHrm") & "(" & First(Fields!indienstfirmanr.Value, "DataSetHrm") & ")", "Prestaties " & First(Fields!naam.Value, "DataSetHrm") & " " & First(Fields!voornaam.Value, "DataSetHrm") & "(" & First(Fields!personeelsnr.Value, "DataSetHrm") & ")")
Run Code Online (Sandbox Code Playgroud)

然后运行带有或不带参数值的报告:

报告预览

预览空param

  • 也许您可以尝试在全新的报告中重新创建上述步骤。当你像上面那样工作时,比较工作版本和你的版本之间创建的 rdl 的相关节点(例如 <dataset>、<textbox>)。否则从工作版本开始,一一添加真实的SQL和其他报表组件,每一步都进行测试。 (2认同)
  • 谢谢@Fillet,我来这里是为了这个。我的问题是我复制/粘贴了一个数据表。(我不是 SSRS 人。)SSRS 更改了我的分组名称,但没有更改按名称引用该组的内联函数。我不得不将 2 个表的 XML/RDL 复制并粘贴到 diff util 中以查看发生了什么。谢谢!! (2认同)