SSRS-图表颜色编码

时间:2009-10-14 01:19:56

标签: reporting-services

我有SQL 2005和2008的SSRS解决方案。

我以图表 - 柱形图的形式显示输出,每列代表不同的数据库。

有没有办法以不同的颜色显示每一列?

此致

Manjot

1 个答案:

答案 0 :(得分:2)

您可以使用公式来设置每列的颜色,但如果您知道单个系列值(“数据库”?)将会是什么,这将最有效。

右键单击您的图表并显示其属性。现在切换到“数据”选项卡,然后选择Values列表中的第一项。单击Edit...按钮以显示图表中值(列)的属性。在Appearance标签上有一个Series Style...按钮,可以转到另一个对话框。

在这个新的Style Properties对话框中,切换到Fill标签。这就是您为每个列设置颜色的位置。这可以是一个公式,所以你可以这样做:

=Switch(
    Fields!Database.Value = "master", "Blue",
    Fields!Database.Value = "msdb", "Red",
    "Green")

如果您事先不知道哪些'数据库'将在图表上显示,则此方法将无法正常工作。在这种情况下,您可能会想出一个哈希数据库名称并提供匹配颜色的公式。这听起来像是一个有趣的挑战,所以如果你需要帮助做这样的话,请添加你的问题。

修改

我刚刚使用基于哈希的颜色方案。这是一段非常讨厌的代码,但它确实为每个(字符串值)列提供了一种独特的颜色。也许有人可以提出更好的算法并在此发布。这是我的:

="#" & left(Hex(Fields!Database.GetHashCode()), 6)

因此,获取字符串的HashCode(一个数值)并将其转换为十六进制,然后取最左边的六个字符并在其前面加上“#”符号。这给了我们一个看起来像颜色值的字符串(例如#AB12F0)。