FYI - a crystal solution would have been to use shared variables or a Running Total to set the a counter that resets on each group
RT version is:
name=BGcolor
type = count
field to evaluate=any field that is on every row (no nulls) e.g. item field
evaluate= for each record
reset=on change of group (select group level 1)
this would give you the same result as your Rank allowing your to use it in the color formula
if ({#BGcolor} Mod 2 = 0)
then
crNoColor
else
Color (212,212,212)