检查SSRS中的null和值

时间:2013-06-05 17:24:00

标签: reporting-services

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

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

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

然而,这给了我错误:

  

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

这是没有意义的,因为我已经确认我的所有括号都已关闭并匹配。

甚至可以将表达式用作IsNothing运算符中的第二项吗?

2 个答案:

答案 0 :(得分:0)

我需要在iif表达式

的第二部分添加IsNothing
=iif(IsNothing(First(Fields!RecordStatusFlagId.Value, "DataSource")),"",iif(First(Fields!RecordStatusFlagId.Value, "DataSource") = 1,"","DELETED"))

答案 1 :(得分:0)

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

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