1

我创建了一个条形图,其中包含 1 个数据系列和大约 8 个值在 0-100% 范围内的条形图。不久前,我找到了一个关于如何为同一数据系列中的列制作不同颜色的教程,并尝试对其进行修改以满足我当前的需求,但我做错了。

同一数据系列中的不同颜色的工作方式如下:

我编辑报告代码以添加以下功能:

Private colorPalette As String() = {"Green", "Blue", "Red", "Orange", "Aqua", "Teal", "Gold", "RoyalBlue", "#A59D93", "#B8341B", "#352F26", "#F1E7D6", "#E16C56", "#CFBA9B"} 
Private count As Integer = 0 
Private mapping As New System.Collections.Hashtable() 
Public Function GetColor(ByVal groupingValue As String) As String 
  If mapping.ContainsKey(groupingValue) Then 
    Return mapping(groupingValue) 
  End If 
  Dim c As String = colorPalette(count Mod colorPalette.Length) 
  count = count + 1 
  mapping.Add(groupingValue, c) 
  Return c 
End Function

现在我有可公开访问的函数 GetColor,我在图表上的数据系列颜色公式中使用它(系列属性,“填充”选项卡):

=Code.GetColor(Fields!proc_choroby.Value)

我试图修改原始函数以根据系列值返回颜色。我已经写了这段代码,但它显然是错误的:

Public Function GetColor(ByVal value As Single) As String
    Dim color As String
    If value < 0.4 Then
    color = "FFFFCC"
    ElseIf value > 0.4 And value < 0.6 Then
    color = "FFFF00"
    ElseIf value > 0.6 And value < 0.7 Then
    color = "FFCC00"
    ElseIf value > 0.7 And value < 0.8 Then
    color = "FF9900"
    ElseIf value > 0.8 And value < 0.9 Then
    color = "993300"
    Else: color = "800000"
    End If
    Return color
End Function
4

1 回答 1

0

我刚刚发现错误,返回的颜色值在开头缺少“#”。其余的工作完全正常。

我的问题已经解决了,但无论如何我都会发布这个问题,以防将来有人想使用它,而我在谷歌上没有找到任何关于这个主题的内容。

于 2013-04-16T08:43:36.300 回答