1

我在 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")
4

2 回答 2

1

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

如果它是日期时间,请分解您的公式以找出未按预期工作的内容并使其更加可见,即使仅用于调试。把它放在一个单元格的表达式中,例如:

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

编辑以添加有关应在何处添加颜色公式的信息:

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

文本框属性字体窗格

于 2012-04-04T22:39:19.040 回答
0

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

于 2017-09-18T00:58:10.310 回答