开关和;如果SSRS 2008中的条件格式

时间:2012-04-04 21:56:58

标签: reporting-services formatting conditional switch-statement iif

我在SSRS中遇到条件格式化问题。我试过Switch& IIF声明(见下文)。报告运行但没有返回颜色,因为我希望它会。我正在尝试突出显示< =今天红色的日期,其他一切都是黑色的。这个字段是日期字段是否重要?我在这里看到的其他问题有相同的问题,但没有解决方案。希望今天是我幸运的一天找到答案。以下是我的尝试,并提前感谢您的任何意见。

        =Switch( Fields!Decision_Must_Be_Made.Value <= today(), "Red",  
         Fields!Decision_Must_Be_Made.Value > today(),  "Black")

        =IIF( Fields!Decision_Must_Be_Made.Value <=today(), "Red",  "Black")

2 个答案:

答案 0 :(得分:1)

是的,如果该字段是日期时间字段,那肯定很重要。如果它是一个字符串,那么您需要先将其转换为日期时间。你如何做到这将取决于字符串的格式。但是如果你能坚持使用数据库中的日期时间字段会更好。 (我已经看到有些人会在选择sql查询时将日期格式化为字符串。不要这样做。格式尽可能晚:在SSRS中,在文本框级别。)

如果是dateTime,请分解您的公式,找出无法正常工作的内容,并使其更加明显,仅用于调试。将其放在单元格的表达式中,例如:

=IIF( Fields!Decision_Must_Be_Made.Value <=today(), "Old",  "New")

编辑添加有关应添加颜色配方的位置的信息:

听起来你没有让IIF在正确的地方指定颜色。您可以指定一些不同的地方:它需要位于文本框或占位符的属性中。这些东西的值应该只是您的日期字段(=Fields.Decision_Must_Be_Made.Value),但字体颜色需要单独指定。一个地方是在“文本框属性”对话框中。在字体窗格中,您需要指定字体颜色。 Fx符号表示您可以指定公式。点击此按钮可输入您的'= iif ...'公式。

Text Box Properties font pane

答案 1 :(得分:0)

不可否认,这不能回答您的情况,但可能会帮助其他人。我有一个问题,一个独立的文本框使用一个场景,我想在没有记录或重复记录时显示错误消息。我的公式“= IIf(IsNothing(First(Fields!MyField.Value))或First(Fields!MyField.Value)&lt;&gt; Last(Fields!MyField.Value),”Red“,”SomeOtherColorButNotBlack“)没有渲染正确的前色(出现“黑色”)然而,在Tablix或Matrix上做一个类似于True或False的类似表达式可以正常工作。另一个用于MS解决。我通过设置颜色找到了我自己的解决方法永远是红色,然后当没有错误时,Text的表达式为空白。