1

我已经尝试了所有在组中交替颜色的表达式,但它不能正常工作。

这是我的报告设计的样子: 在此处输入图像描述

我希望每个组行交替颜色,我希望每个组内的细节交替。但是,我总是在小组交替时得到这个

在此处输入图像描述

我正在使用这个表达式:

=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"))

对于组填充和细节填充的这个表达式:

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

在此处输入图像描述

有人可以帮我弄清楚我需要改变什么,以便外部团体正确交替吗?

谢谢你。

4

1 回答 1

3

我使用一个函数来控制背景颜色——它比在 SSRS 中使用 ROWNUMBER 函数更可靠。

您可以将此添加到 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

然后从BackgroundColor值调用函数:

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

该函数所做的只是检查 bOddRow 变量并根据 bOddRow 的值返回第一种或第二种颜色。

第三个参数是切换值。如果为 1,颜色会改变,否则返回相同的颜色。组中的第一列将切换,而其他列将具有 0,因此颜色与第一列相同。

第四个参数是组号。对于您的报告,我会将最后一个数字设为内部组 1,外部组为 2。

内部组第一列背景颜色:

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

内部组其他列背景颜色:

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

外组第一列背景颜色:

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

外组其他列背景颜色:

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

抄袭我之前的帖子: How to create Alternative Row Background colors in SSRS for values in a group

于 2016-12-29T21:06:20.777 回答