SSRS“斑马条纹”未按预期工作

时间:2012-02-20 12:46:14

标签: reporting-services formatting ssrs-2008 ssrs-tablix

为什么不更新'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。您可能需要在另一个窗口中打开图像以查看调试输出 - 我使用getalt&显示'cnt'和'alt'的值。 getcnt

enter image description here

2 个答案:

答案 0 :(得分:2)

看起来你的事情太复杂了。您可以使用RowNumber来实现备用背景着色,例如:

  

= IIF(RowNumber(“YourDataset”)Mod 2,“#E7E7E7”,“透明”)

请注意,如果您正在使用分组,则YourDataset也可以作为范围。

答案 1 :(得分:1)

BGcolor代码需要在第一列中

= IIF(code.getcnt()Mod 2,“#E7E7E7”,“透明”)& Code.Stripe(TRUE,“”,“”)

,这在第二......列中

= IIF(code.getcnt()Mod 2,“#E7E7E7”,“透明”)& Code.Stripe(FALSE,“”,“”)

我确信代码可以整理:)