【问题标题】:SSRS Change Fill Colour Depending on Cell ValuesSSRS 根据单元格值更改填充颜色
【发布时间】:2018-08-17 16:07:55
【问题描述】:

我知道这已经被问过几次了,但是我正在努力寻找我需要它的答案(或者我可能错过了答案,所以请随时复制并粘贴一个链接,如果已经被问到)

我知道通过在这里搜索Switch 函数可以帮助根据值更改背景颜色。我需要 3 种颜色,但其中一种颜色似乎超过了另一种颜色,这导致了问题,我认为这是因为一个值介于两个数字之间

我正在尝试显示

等于或大于 10 - 红色 9.99 之前等于或大于 5 - 琥珀色 等于或大于 0 直到 4.99 绿色 小于 0 直到 -4.99 绿色 -5 至 -9.99 琥珀色 -10 或更大红色

我正在使用它,但它不起作用;

=switch(Fields!Field_Name <= -10, "Red",  
Fields!Field_Name <= -5, "Amber",
Fields!Field_Name >= 10, "Red", 
Fields!Field_Name >= 0, "Green", 
Fields!Field_Name <= 4.99, "Green",
Fields!Field_Name < -0.1, "Green",
Fields!Field_Name <= -4.99, "Green",
Fields!Field_Name > 5, "Amber", True, "Green")

非常感谢任何帮助(而不是嘲笑)!

干杯

【问题讨论】:

  • 您使用什么类型的查询源:T-SQL、PL\SQL、XML 等?
  • 如果是 SQL,我会在查询中的 CASE 语句中执行逻辑。
  • 另外,您似乎错过了Fields!Field_Name末尾的.Value
  • 对不起,是的,它的 SQL 使用 SSMS SQS Server 2012 并输入到 SSRS Visual Studio 2013
  • @aduguid 是的,以上只是写题时现场编写的示例代码

标签: visual-studio reporting-services conditional-formatting


【解决方案1】:

我发现,有时在一个范围内画出你想要的颜色会有所帮助。然后从最外部的条件向内工作。

这是我如何使用 T-SQL CASE 表达式进行测试的示例。我认为这个逻辑就是你所追求的。我还包含了一个示例作为表达式。

SQL 示例:

WITH
source_data
AS
(
    SELECT tbl.* FROM (VALUES
      ( -11, 'Red')
    , ( 11, 'Red')
    , ( -6, 'DarkOrange')
    , ( 6, 'DarkOrange')
    , ( 1, 'Green')
    , ( 4.98, 'Green')
    , ( -0.11, 'Green')
    ) tbl ([Field_Name], [FillColourWanted]) 
)
SELECT
      [Field_Name] = CAST([Field_Name] AS FLOAT)
    , [FillColourWanted]
    , [FillColour] = 
        CASE 
            WHEN [Field_Name] <= -10 OR [Field_Name] >= 10 THEN 'Red'
            WHEN [Field_Name] <= -5 OR Field_Name >= 5 THEN 'DarkOrange'
            WHEN [Field_Name] < 5 OR [Field_Name] > -5 THEN 'Green'
        END 
FROM
    source_data

SQL 结果:

表达式示例:

=Switch(
  Fields!Field_Name.Value <= -10 OR Fields!Field_Name.Value >=10, "Red"
, Fields!Field_Name.Value <= -5 OR Fields!Field_Name.Value >= 5, "DarkOrange"
, Fields!Field_Name.Value > -5 OR Fields!Field_Name.Value < 5, "Green"
)

SSRS 结果

[FillColourWanted][FillColor] 的背景颜色由 SQL 列中的值设置。 [Expression] 的背景颜色由表达式示例设置。

【讨论】:

  • 这对于理解如何做以及我需要什么来说太棒了。非常感谢@aduguid 唉,我没有足够的个人资料来标记这一点等,但如果其他人可以,那就太好了。再次感谢
  • 唉,这没用。 0.00 到 5 之间的任何东西都没有填充。你能想到什么会阻止这一切吗?
  • 是的,它只是纯白色和黑色文本,这真是太可惜了,因为其他人工作正常
  • 忽略这个,我已经开始工作了,不知道为什么一开始没有
  • 啊,谢谢!不知道我能做到这一点,以为我只能投赞成票。完成!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 2017-01-05
  • 1970-01-01
  • 2011-07-29
相关资源
最近更新 更多