如何在SSRS分组表中设置备用颜色?

时间:2015-02-16 23:01:24

标签: visual-studio reporting-services ssrs-2008 sql-server-data-tools ssrs-2012

我有一个带有[Name]组的表和一个将输出以下内容的[IDGrouping]:

Table Description Table Results

如何为表格设置替代颜色?例如,我希望亚当变成绿色,而马特会变成白色然后萨姆会变成绿色?注意:我希望名称旁边的行也设置为相应的颜色。

作为后续的第二个问题,如何将值行设置为具有不同的交替行?因此,对于Sam的[SummedNum]值,第一行将为红色,第二行将为白色,第三行将为红色。

我尝试使用以下代码更改[SummedNum]列的背景属性:

=iif(rowNumber(Nothing) mod 2 = 0, "Silver", "No Color")

但它填满并突出显示错误的行。

1 个答案:

答案 0 :(得分:0)

看起来你有一个矩阵而不是一张桌子。在矩阵上使用替代颜色(" greenbar")比在表格上更复杂。我们的想法是在行组更改时更改颜色,并记住该颜色以便在行的其余部分中使用。

在“报告属性”对话框中,选择“属性”,单击Code选项卡并粘贴以下代码。

Private Const DefaultColour = "Transparent"

Public Dim GreenBarColour As String = DefaultColour

Private Dim LastCode As String = ""

Public Function Greenbar(ThisCode As String) As String
  If (ThisCode <> LastCode) Then
    If (GreenBarColour = DefaultColour) Then
      GreenBarColour = "PowderBlue"
    Else
      GreenBarColour = DefaultColour
    End If
  End If
  LastCode = ThisCode
  GreenBar = GreenBarColour
End Function

在您的行组(Name字段)上为BackgroundColor属性添加以下公式(这是我们更改并记录绿条颜色的位置):

=Code.GreenBar(Fields!Name.Value)

如果您的单元格显示值(而不是聚合),我们只使用之前计算的绿色颜色 - 为BackgroundColor属性添加以下公式(您不具备这些但包含在其他内容中)读这个答案的人):

=Code.GreenBarColour

对于该组的总单元格(SummedNum),我们也这样做 - 在BackgroundColor属性中使用以下公式:

=Code.GreenBarColour

要重置报告末尾的总行颜色(单击“总计”单元格的绿色角以访问这些属性),请为BackgroundColor属性添加以下公式:

=Code.GreenBar("")