在SSRS中,我有一个条形图。我想动态更改前3个栏的栏颜色。
编写新的SQL数据集是否可以实现?
任何想法都会很棒。
谢谢,
答案 0 :(得分:0)
您可以使用表达式更改任何图表项的颜色。如果要更改数据集中前3个记录的颜色,我将使用SQL中的排名来查找它们。您甚至可以使用参数替换下面的case语句中的等级3
,以便让用户选择最顶层的数字。
WITH
your_chart_data
AS
(
SELECT tbl.* FROM (VALUES
( 'Group1', 100)
, ( 'Group2', 90)
, ( 'Group3', 80)
, ( 'Group4', 70)
, ( 'Group5', 60)
, ( 'Group6', 50)
, ( 'Group7', 40)
, ( 'Group8', 30)
, ( 'Group9', 20)
, ( 'Group10', 10)
, ( 'Group11', 0)
) tbl ([YourColumnGroupHere], [YourColumnValueHere])
)
SELECT
[YourColumnGroupHere]
, [YourColumnValueHere]
, [YourColumnRank] =
CASE
WHEN RANK() OVER (ORDER BY [YourColumnValueHere] DESC) <= 3 THEN 1
ELSE 0
END
FROM
your_chart_data
然后你可以使用这样的表达式。
=IIF(Fields!YourColumnRank.Value = 1, "Red", "Green")
选择您要更改的系列属性之一。
然后选择Fill
并在Color
点击fx
旁边,您可以创建一个表达式来更改颜色。