简体   繁体   中英

SSRS Alternating colors in groups

I have tried all the expresssions posted for alternating colors in a group but it's not working correctly.

Here is what my report design looks like: 在此处输入图片说明

I would like each group row to alternate colors and I would like the detail inside each group to alternate. However, I always get this for the group alternating

在此处输入图片说明

I am using this expression:

=IIF(RunningValue(Fields!AssignedUnit.Value,COUNT,NOTHING) MOD 2 = 0
,IIF(ROWNUMBER(NOTHING) MOD 2=0,"LIGHTBLUE","SILVER")
,IIF(ROWNUMBER(NOTHING) MOD 2=1,"SILVER","LIGHTBLUE"))

for the group fill and this expression for the detail fill:

= IIf(RowNumber(Nothing) Mod 2 = 0, "LIGHTBLUE", "SILVER")

在此处输入图片说明

can someone help me figure out what I need to change so that the outside groups alternate correctly?

Thank you.

I use a function to control the background color - it's more reliable than using the ROWNUMBER function in SSRS.

You would add this to the VB Code section (Report Properties --> Code tab):

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

Then call the function from the BackgroundColor value:

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

All the function does is check the bOddRow variable and return the first or second color depending on bOddRow's value.

The third argument is the Toggle value. If it is 1, the color will change otherwise it would return the same color. The first column in a group would toggle while the others would have a 0 so the color is the same as the first.

The fourth argument is for the group number. For your report, I would make the inner Group 1 for the last number and the outer group would be 2.

Inner Group First column background color :

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

Inner Group Other columns background color :

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

Outer Group First column background color :

=code.AlternateColor("MintCream", "WhiteSmoke", 1, 2)

Outer Group Other columns background color :

=code.AlternateColor("MintCream", "WhiteSmoke", 0, 2)

Plagiarized from my previous post: How to create Alternative Row Background colors in SSRS for values in a group

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM