SSRS + CRM 中的开关表达式:参数 'VarExpr' 不是有效值”

Switch expression in SSRS + CRM : Argument 'VarExpr' is not a valid value"

我正在使用具有 Microsoft Dynamics 365 Fetch where my FetchXML contains the attribute having Option Set 数据类型的 SSRS - 其中选项设置值如下所示:

   Value =====> Label
   1     =====> "State 1"
   2     =====> "State 2"
   3     =====> "State 3"

我在这里要做的是获取 Value 属性的标签。

当我尝试添加表达式来转换它时,它们都会抛出相同的错误:

Switch expression

=Switch(
  Fields!State.Value = 1, "State 1",
  Fields!State.Value = 2, "State 2",
  Fields!State.Value = 3, "State 3",
  Space(1)
)

IIf Expression

=IIf(Fields!State.Value = 1, "State 1",
   IIf(Fields!State.Value = 2, "State 2", 
     IIf(Fields!State.Value = 3, "State 3", 
       " "
      )
    )   
  )

我提到了一些答案,其中说这可能是数据类型问题 - 并尝试将 Fields!State.Value 转换为 Int & String 但不是有帮助。

你能分享一下我在这里遗漏了什么吗?

您的 SWITCH 语句似乎缺少最后一对值(表达式和值)的第一个参数。它不像 ELSE 那样工作,您需要提供一个表达式来评估。 SSRS 正在尝试将 Space(1) 计算为布尔表达式。

=Switch(
  Fields!State.Value = 1, "State 1",
  Fields!State.Value = 2, "State 2",
  Fields!State.Value = 3, "State 3",
  True, Space(1)
)

不确定为什么 IIF 不起作用。