SSRS表达问题

时间:2018-10-29 15:25:02

标签: reporting-services ssrs-2008 ssrs-2012

我有一列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"))))

我无法解决问题。

2 个答案:

答案 0 :(得分:1)

尝试用这个想法来改变您的最后状况:

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"))))

答案 1 :(得分:1)

这比我想的要复杂。我自己测试了它,并以此方式工作:

=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/18开始的是Mid(Fields!sg1.Value, 7, 2) = 18 (YY)Mid(Fields!sg1.Value, 4, 2) = 10 (MM)Left(Fields!sg1.Value, 2) = 18 (DD)