SSRS 根据单元格值更改填充颜色
SSRS Change Fill Colour Depending on Cell Values
我知道这个问题已经被问过几次了,但是我正在努力寻找我需要它的答案(或者我可能错过了答案,所以请随时复制并粘贴 link 如果已经被问到)
我通过在此处搜索了解到 Switch
函数可以帮助根据值更改背景颜色。我需要 3 种颜色,但是一种颜色似乎超过了另一种颜色,这是导致问题的原因,我认为这是因为一个值介于两个数字之间
我正在尝试展示
等于或大于 10 - 红色
等于或大于 5 直到 9.99 - 琥珀色
等于或大于 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 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]
的背景颜色由表达式示例设置。
我知道这个问题已经被问过几次了,但是我正在努力寻找我需要它的答案(或者我可能错过了答案,所以请随时复制并粘贴 link 如果已经被问到)
我通过在此处搜索了解到 Switch
函数可以帮助根据值更改背景颜色。我需要 3 种颜色,但是一种颜色似乎超过了另一种颜色,这是导致问题的原因,我认为这是因为一个值介于两个数字之间
我正在尝试展示
等于或大于 10 - 红色 等于或大于 5 直到 9.99 - 琥珀色 等于或大于 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 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]
的背景颜色由表达式示例设置。