【问题标题】:Switch & IIF Conditional Formatting in SSRS 2008SSRS 2008 中的 Switch 和 IIF 条件格式
【发布时间】:2012-04-18 16:12:06
【问题描述】:

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

【问题讨论】:

  • @selectallfrom- 如果您找到了自己的问题解决方案,请随时将其作为答案发布并接受。这样,答案对未来的读者来说就更明显了。
  • 需要有关字段的更多信息!Decision_Must_Be_Made.Value 包含作为值及其在数据库中的类型。这是您从数据库中获取的单个值吗?默认情况下,它采用第一个值并进行比较。查看报告后您遇到的任何错误我没有遇到任何问题我正在获取值并且能够进行比较而没有错误。
  • @Leigh,我以为我确实发布了我的 asnwer,但我现在看不到它。当我尝试回答自己的问题时,我收到一条通知,说我要在 6 小时后才能回答自己的问题(因为我对社区还很陌生)。
  • @selectallfrom - (编辑)是的,我不知道新成员的所有规则。我最初发表评论是因为我看到了“待编辑”(不确定是否被批准)。在这种情况下,发布单独的“答案”可能比更新原始问题更好。所以更容易找到。当您被允许发布一个“答案”时 .. ;) 顺便说一句,欢迎使用 stackoverflow!

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

    • 该字段已经是一个日期,所以不工作的是颜色。我返回的结果实际上填充了单词“Black”或如您的示例“Old”。如果日期小于今天,我需要日期的 font 颜色为红色,依此类推。我是不是走错路了?
    • 添加了指定此公式应位于何处的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多