我试图在SSRS中有条件地格式化我的单元格,这样如果该特定网站变为活动状态的日期是在过去的特定日期之后(在这种情况下,2017年1月31日),它应该是黑色的,否则不会颜色。
我试过这个:
=IIf(datediff("dd", "2017-01-31", Fields!<datefield>.Value) > 0
,"Black"
,"Transparent"
)
但我尝试的任何东西似乎都没有任何区别(即它总是透明的,即使我尝试将相关颜色交换成圆形)。
我做错了什么?!
非常感谢你的帮助。
答案 0 :(得分:3)
这里有一些问题。 DateDiff比较两个日期,因此您需要使用CDate函数来转换字符串(确保设置报表语言以便根据您的语言环境转换日期),还需要指定要比较的字段。试试这个(用你自己字段的名称替换MyDateField):
=Iif(DateDiff(DateInterval.Day, CDate("2017-01-31"), Fields!MyDateField.Value) > 0, "Black", Nothing)
另外,我使用了DateInterval枚举。我知道在线文档建议您可以使用字符串(例如“dd”),但这不起作用!
最后,你会注意到我使用了Nothing而不是“Transparent”。那是因为Visual Studio(如果你使用它)不能将Transparent识别为有效颜色(是的,真的......)并相应地生成警告。如果你有很多这样的表达方式,这些可能会变得很烦人!
答案 1 :(得分:1)
你可以尝试下面的表达式吗?我打赌你关闭日期格式。
=IIf(datediff(DateInterval.Day, Date(2017,1,31), Fields!.Value) > 0, "Black", "Transparent")