SSRS «Зебра чередование» не работает, как ожидалось - PullRequest
1 голос
/ 20 февраля 2012

Почему не обновляется 'ALT' (переменная, используемая для определения цвета строки) (см. Рис.)

Вот код:

Private Alt As Boolean
Private cnt as integer
Function Stripe(ByVal NewRow As Boolean, ByVal OddColor as String, ByVal EvenColor as String) As String
    If NewRow Then 
Alt = Not Alt ' Trip the switch denoting a new row
cnt = cnt + 1
end if
    If Alt Then
        Return OddColor
    Else
        Return EvenColor
    End If
End Function

Function getalt () as boolean
return alt
end function    

function getcnt() as integer
return cnt
end function

вот код, который идет в «цвет фона» первый столбец:

=Code.Stripe(true, "#E7E7E7", "Transparent")

секунд до N столбцов:

=Code.Stripe(False, "#E7E7E7", "Transparent")

n.b. вам может понадобиться открыть изображение в другом окне, чтобы увидеть выходные данные отладки - я показываю значения 'cnt' и 'alt' с помощью getalt & getcnt

enter image description here

Ответы [ 2 ]

2 голосов
/ 22 марта 2012

Похоже, вы делаете вещи слишком сложными.Вы можете использовать RowNumber для достижения альтернативной окраски фона, например:

= IIF (RowNumber ("YourDataset)) Mod 2," # E7E7E7 "," Transparent ")

Обратите внимание, что YourDataset также может быть областью действия, если вы используете группирование.

1 голос
/ 22 марта 2012

Код BGcolor должен быть таким в первом столбце

= IIF (code.getcnt () Mod 2, "# E7E7E7", "Transparent") и Code.Stripe (TRUE, "", "")

и это во 2-й колонке ... N

= IIF (code.getcnt () Mod 2, "# E7E7E7", "Transparent") и Code.Stripe (FALSE, "", "")

Я уверен, что код можно привести в порядок:)

...