我在报表中遇到表达式问题。我根据其中的值为表格中的文本框背景着色。该字段中的文本涉及SQL Server的备份。该值是日期或文本“尚未采取”。如果日期超过2天,我想让背景变成黄色。如果它的一周以上或日期值为“尚未采用”,我希望背景为红色。否则,它会变成绿色。SSRS表达式评估问题
,因为我开始为SSRS报告(在几个星期前)我已经遇到的问题是,我的表情似乎得到完全评估。即使只使用其中的一个,IF语句也会评估其真值和假值。
这成为一个问题,因为“尚未采取”显然不是一个日期,并与我需要将日期字符串转换为日期的日期一起工作。下面是代码我目前:
=IIF(Fields!LastBackUpTaken.Value = "Not Yet Taken","Red", IIF(IsDate(Fields!LastBackUpTaken.Value) = true,
IIF(CDate(Fields!LastBackUpTaken.Value).AddDays(Parameters!DaysTillExpiry.Value).CompareTo(NOW()) = 1,
"GreenYellow",
IIF(CDate(Fields!LastBackUpTaken.Value).AddDays(7).CompareTo(NOW()) = 1, "Yellow", "Red")),
"Red"))
所以基本上,表达写着“如果LastBackUpTaken.Value =‘尚未采取’,返回红色如果不是‘尚未采取’检查以查看字符串是否为日期如果不是日期,则返回红色如果日期是计算并返回相应颜色
此表达式适用于所有文本字段, t“还未拍摄”作为其文本,对于那些确实有“还未拍摄”的字段,因为其文本没有任何颜色设置。 o提及,无论何时文本“尚未采取”
任何想法?
谢谢!我知道这个代码,但并不是很喜欢它,它试图按照我希望的方式使用Report参数。没有想到这个解决方案,但它奇妙地工作。 – 2008-11-28 18:58:11