【问题标题】:Checking for null and a value in SSRS检查 SSRS 中的 null 和值
【发布时间】:2013-06-05 17:23:59
【问题描述】:

我想检查 SSRS 报告中的值以确保它不为空,首先,它等于特定值。我的表达如下:

=iif(IsNothing(First(Fields!RecordStatusFlagId.Value, "DataSource")),"",(First(Fields!RecordStatusFlagId.Value, "DataSource") = 1,"","DELETED"))

因此,如果RecordStatusFlagID.Value 不为空且不等于 1,则写入“DELETED”。否则写“”。

但是,这给了我错误:

错误 75 [rsCompilerErrorInExpression] textrun 'textbox21.Paragraphs[0].TextRuns[0]' 的值表达式包含错误:[BC30198] ')' 预期。 C:\Reports\MyReport.rdl 0 0

这没有任何意义,因为我已经验证了我的所有括号都是闭合且匹配的。

甚至可以在IsNothing 运算符中使用表达式作为第二项吗?

【问题讨论】:

    标签: reporting-services


    【解决方案1】:

    我需要在IsNothing 表达式的第二部分添加一个iif

    =iif(IsNothing(First(Fields!RecordStatusFlagId.Value, "DataSource")),"",iif(First(Fields!RecordStatusFlagId.Value, "DataSource") = 1,"","DELETED"))
    

    【讨论】:

    • 任何人都可以扩展这个答案吗?我更愿意接受其他人可以从中受益的更完整的东西。
    【解决方案2】:

    我认为您可以将其简化为单个 iif() 语句:

    =iif(
        First(Fields!RecordStatusFlagId.Value, "DataSource") <> 1 
        And First(Fields!RecordStatusFlagId.Value, "DataSource") Is Not Nothing
        , "DELETED"
        , ""
       )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多