【问题标题】:Switch expression in SSRS + CRM : Argument 'VarExpr' is not a valid value"SSRS + CRM 中的切换表达式:参数“VarExpr”不是有效值”
【发布时间】:2021-09-09 02:53:24
【问题描述】:

我正在使用带有 Microsoft Dynamics 365 Fetch 的 SSRS,其中我的 FetchXML 包含具有 Option Set 数据类型的属性 - 其中选项集值如下所示:

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

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

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

切换表达式

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

IIf 表达式

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

我已经参考了一些答案,其中说这可能是数据类型问题 - 并尝试将 Fields!State.Value 转换为 IntString,但没有帮助。

你能分享一下我在这里缺少什么吗?

【问题讨论】:

    标签: reporting-services ssrs-2012 fetchxml


    【解决方案1】:

    您的 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 不起作用。

    【讨论】:

    • 嗯,修复了该警告 - 但仍会在报告中显示 #ERROR。所以后来我尝试将 field.Value 与“1”(即字符串值)进行比较,然后在报告中显示为空白(default 来自开关的值)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多