IF语句以查找LookupSet表达式中的最后一个值

时间:2018-11-06 14:44:24

标签: arrays reporting-services reportbuilder3.0

我有一个表达式来获取最后的日期值,但是如果没有输入日期,则会得到“ #Error”。 (IF部分返回#Error,因为未输入日期-Else部分返回日期)。这是表达式:

IIF(LookupSet(Fields!Denial_ID.Value,Fields!Denial_ID.Value,Fields!Appeal_Date_Entered.Value,"DataSet2").Length() =0, "", LookupSet(Fields!Denial_ID.Value, Fields!Denial_ID.Value, Fields!Appeal_Date_Entered.Value, "DataSet2")(LookupSet(Fields!Denial_ID.Value, Fields!Denial_ID.Value, Fields!Appeal_Date_Entered.Value, "DataSet2").Length() -1))

1 个答案:

答案 0 :(得分:0)

我绝对不是报告撰稿人,但是您的表达中有些奇怪的内容使我期望它不起作用。下面是它的格式化版本(尽管我不知道MRB中的空格语法,但分析起来更容易)

IIF(
  LookupSet(Fields!Denial_ID.Value,
    Fields!Denial_ID.Value,
    Fields!Appeal_Date_Entered.Value,"DataSet2").Length() =0,
  "",
  LookupSet(Fields!Denial_ID.Value,
    Fields!Denial_ID.Value,
    Fields!Appeal_Date_Entered.Value, "DataSet2")
  (LookupSet(Fields!Denial_ID.Value,
    Fields!Denial_ID.Value,
    Fields!Appeal_Date_Entered.Value,
    "DataSet2").Length() -1)
)

根据docsIIF的语法如下:

=IIF(condition, valueIfTrue, valueIfFalse)

但是您的表情看起来像这样:

IIF(condition, valueIfTrue, valueIfFalse (someOtherStuff))

因此,您应该描述您希望从该表达式中得到的内容,并对其进行更改以符合标准语法(另请参见参考页上的示例)。