Reporting services SSRS表达问题

Reporting services SSRS表达问题,reporting-services,ssrs-2008,ssrs-2012,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

我有一个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"))))
=IIF(字段!sg1.Value=“W”,“卡其色”,
IIF(字段!sg1.Value=“g”,“灰色”,
IIF(字段!sg1.Value=“b”,“蓝色”,
IIF((LEN(Fields!sg1.Value)=12和

格式(左(Fields!sg1.Value,8),“YY-MM-DD”)尝试用以下方法更改上一个条件:

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

CDate(左(Fields!sg1.Value,8))尝试使用以下想法更改上一个条件:

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

CDate(左(Fields!sg1.Value,8))这比我想象的更复杂。我自己测试了它,它应该是这样工作的:

=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"))))
=IIF(字段!sg1.Value=“W”,“卡其色”,
IIF(字段!sg1.Value=“g”,“灰色”,
IIF(字段!sg1.Value=“b”,“蓝色”,
IIF((LEN(Fields!sg1.Value)=12和
DateSerial(Mid(字段!sg1.Value,7,2),
Mid(字段!sg1.Value,4,2),
左(字段!sg1.Value,2))

这比我想的更复杂。我自己测试了它,这样它应该可以工作:

=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"))))
=IIF(字段!sg1.Value=“W”,“卡其色”,
IIF(字段!sg1.Value=“g”,“灰色”,
IIF(字段!sg1.Value=“b”,“蓝色”,
IIF((LEN(Fields!sg1.Value)=12和
DateSerial(Mid(字段!sg1.Value,7,2),
Mid(字段!sg1.Value,4,2),
左(字段!sg1.Value,2))

您可以发布抛出的错误消息是什么吗?您不应该将列格式化为“DD/MM/YY”吗,如果这是您的日期格式?另外,您在查询中是否考虑过将日期和额外字符拆分为两列?将日期和字符串放在后面似乎是一件痛苦的事情。@CrazyCucumber我无法将日期和额外字符分开,因为这是客户指定的格式。您可以发布错误消息是正在抛出?您不应该将列格式化为“DD/MM/YY”吗,如果这是日期的格式?另外,您在查询中是否考虑过将日期和额外字符拆分为两个单独的列?处理日期和后面的字符串似乎很痛苦。@CrazyCumber我无法将日期和额外字符分开,因为这是客户端指定的格式。