我有SQL 2005和2008的SSRS解决方案。
我以图表 - 柱形图的形式显示输出,每列代表不同的数据库。
有没有办法以不同的颜色显示每一列?
此致
Manjot
答案 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)。