2017-03-20 68 views
1

我试图在SSRS中有条件地格式化单元格,以便如果特定网站的激活日期是过去某个特定日期之后(在此情况下为2017年1月31日),则它应该是黑色的,否则没有颜色。我的SSRS表达有什么问题?

我已经试过这样:

=IIf(datediff("dd", "2017-01-31", Fields!<datefield>.Value) > 0 
    ,"Black" 
    ,"Transparent" 
    ) 

但没有我尝试似乎让任何区别(即它始终是透明的,即使我尝试换轮相关的颜色)。

我在做什么错?

非常感谢您的帮助。

回答

0

你可以试试下面的表达方式吗?我敢打赌,你的日期格式不对。

=IIf(datediff(DateInterval.Day, Date(2017,1,31), Fields!.Value) > 0, "Black", "Transparent") 
2

这里有一些错误。 DateDiff会比较两个日期,因此您需要使用CDate函数来转换字符串(确保您设置了报告语言,以便日期根据您的语言环境进行转换),并且您还需要指定要与之比较的字段。试试这个(用你自己的字段替换MyDateField):

=Iif(DateDiff(DateInterval.Day, CDate("2017-01-31"), Fields!MyDateField.Value) > 0, "Black", Nothing) 

另外,我使用了DateInterval枚举。我知道在线文档建议你可以使用一个字符串(例如“dd”),但这不起作用!

最后,你会注意到我使用Nothing而不是“Transparent”。这是因为Visual Studio(如果使用的话)不能将Transparent识别为有效的颜色(是,真的......)并相应地生成警告。如果你有很多这样的表情,这些可能会令人厌烦!

+0

完美工作 - 谢谢! – HelenS