如何在SSRS中为组中的值创建备用行背景颜色

时间:2016-08-16 21:11:09

标签: sql vb.net reporting-services

我正在使用此表达式为我的行组获取替代颜色:

=iif(RunningValue(Fields!Status_Reason.Value,CountDistinct,Nothing) Mod 2, "LightBlue", "White")

除了一些行之外,一切正常: enter image description here

我假设它是因为某些值是" - ",它们是0。 在这种情况下可以解决什么问题? 这是我的小组: enter image description here

1 个答案:

答案 0 :(得分:3)

我使用一些VB代码来交替行颜色。首先进行设置还需要做一些工作,但它始终正常工作,您可以通过复制VB代码重新使用其他报告中的代码。

<强>表达式:

=code.AlternateColor("AliceBlue", "White", 1, 1)

=code.AlternateColor("AliceBlue", "White", 0, 1)

第一列应该有第一个表达式 - 参数中的第一个表示它改变颜色。其余列使用第二个表达式,其中0表示颜色不会更改。

VB代码:

Private bOddRow(10) As Boolean 

Function AlternateColor(ByVal OddColor As String, ByVal EvenColor As String, ByVal Toggle As Boolean, ByVal Type AS INTEGER) As String 

  If Toggle Then bOddRow(Type) = Not bOddRow(Type) 

  If bOddRow(Type) Then 
                Return OddColor 
  Else 
                Return EvenColor 
  End If 

End Function

如果在一个表中有多个级别的分组,则可以更改表达式的第二个数字,以使每个组的行都是唯一的。在下面的例子中,主要分组用白色和AliceBlue着色,子组是白色和浅蓝色。

enter image description here