SSRS 表达式问题

SSRS Expression Issue

我有一个 sg1 列,其中日期为字符串,并且可能有一些额外的字符,例如

25/10/18 (M) 
25/06/15 (P) this is planned.

我的日期格式是DD/MM/YY。 我必须根据单元格值为单元格着色。 我已经为该列编写了背景颜色表达式。 最后一个条件不工作并抛出错误。

=IIF(Fields!sg1.Value = "W","Khaki",
IIF(Fields!sg1.Value="g","Gray", 
IIF(Fields!sg1.Value="b","Blue",
IIF((LEN(Fields!sg1.Value)=12 And
Format(LEFT(Fields!sg1.Value,8),"YY-MM-DD")<Today),"Pink", 
"Green"))))

我无法理解问题所在。

尝试用这个想法改变你的最后一个条件:

And
CDate(LEFT(Fields!sg1.Value,8))<Today(),"Pink", "Green")

有了你的字段,这段代码应该没问题:

=IIF(Fields!sg1.Value = "W","Khaki",
IIF(Fields!sg1.Value="g","Gray", 
IIF(Fields!sg1.Value="b","Blue",
IIF(LEN(Fields!sg1.Value)=12 And
CDate(LEFT(Fields!sg1.Value,8))<Today(),"Pink", "Green"))))

这比我想象的要复杂。我自己测试过,这样应该可以工作:

=IIF(Fields!sg1.Value = "W","Khaki", 
 IIF(Fields!sg1.Value="g","Gray", 
 IIF(Fields!sg1.Value="b","Blue", 
 IIF((LEN(Fields!sg1.Value)=12 And 
 DateSerial(Mid(Fields!sg1.Value, 7, 2),
            Mid(Fields!sg1.Value, 4, 2), 
            Left(Fields!sg1.Value, 2))  
            <Today),"Pink", "Green"))))

其中 25/10/18Mid(Fields!sg1.Value, 7, 2) = 18 (YY)Mid(Fields!sg1.Value, 4, 2) = 10 (MM)Left(Fields!sg1.Value, 2) = 18 (DD)