SSRS中的动态字段名称

jjm*_*jjm 4 sql-server variables dynamic reporting-services

我正在尝试检索字段的值,但该字段的名称必须是动态的.

=iif(Fields!Year1.Value = 1, 0, 1)
Run Code Online (Sandbox Code Playgroud)

但我需要的Year1部分从另一个数据集中返回,所以Year1是动态的(可能是Year2,Year3等...)

我有一个返回数据的字段

 =First(Fields!YearCount.Value, "YearColumn").
Run Code Online (Sandbox Code Playgroud)

本身这个表达式将返回Year1,Year2等部分,但我奋力用if语句来连接这一点.

我试过了:

=iif(Fields!(First(Fields!YearCount.Value, "YearColumn")).Value = 1, 0, 1) 
Run Code Online (Sandbox Code Playgroud)

例如.

mar*_*c_s 8

在SSRS中引用字段的表示法是:

=Fields!FieldName
Run Code Online (Sandbox Code Playgroud)

或者

=Fields(FieldName)
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下,试试这个:

=Fields(First(Fields!YearCount.Value, "YearColumn")).Value 
Run Code Online (Sandbox Code Playgroud)

因为内部函数应该返回Year1(或另一个值),你应该得到一个表达式:

=Fields("Year1").Value 
Run Code Online (Sandbox Code Playgroud)

这应该给你你需要的价值.

  • 非常感谢,它起作用并帮助了很多. (3认同)
  • @jjm:很高兴我能帮上忙!我目前也正在进入 SSRS 和男孩 - 它是一头野兽,有时非常不直观...... (2认同)
  • 天啊……哇,这存在?!再见,庞大的“Switch()”语句。谢谢,两个! (2认同)