我有一个带有[Name]组的表和一个将输出以下内容的[IDGrouping]:
如何为表格设置替代颜色?例如,我希望亚当变成绿色,而马特会变成白色然后萨姆会变成绿色?注意:我希望名称旁边的行也设置为相应的颜色。
作为后续的第二个问题,如何将值行设置为具有不同的交替行?因此,对于Sam的[SummedNum]值,第一行将为红色,第二行将为白色,第三行将为红色。
我尝试使用以下代码更改[SummedNum]列的背景属性:
=iif(rowNumber(Nothing) mod 2 = 0, "Silver", "No Color")
但它填满并突出显示错误的行。
答案 0 :(得分:0)
看起来你有一个矩阵而不是一张桌子。在矩阵上使用替代颜色(" greenbar")比在表格上更复杂。我们的想法是在行组更改时更改颜色,并记住该颜色以便在行的其余部分中使用。
在“报告属性”对话框中,选择“属性”,单击Code
选项卡并粘贴以下代码。
Private Const DefaultColour = "Transparent"
Public Dim GreenBarColour As String = DefaultColour
Private Dim LastCode As String = ""
Public Function Greenbar(ThisCode As String) As String
If (ThisCode <> LastCode) Then
If (GreenBarColour = DefaultColour) Then
GreenBarColour = "PowderBlue"
Else
GreenBarColour = DefaultColour
End If
End If
LastCode = ThisCode
GreenBar = GreenBarColour
End Function
在您的行组(Name
字段)上为BackgroundColor
属性添加以下公式(这是我们更改并记录绿条颜色的位置):
=Code.GreenBar(Fields!Name.Value)
如果您的单元格显示值(而不是聚合),我们只使用之前计算的绿色颜色 - 为BackgroundColor
属性添加以下公式(您不具备这些但包含在其他内容中)读这个答案的人):
=Code.GreenBarColour
对于该组的总单元格(SummedNum
),我们也这样做 - 在BackgroundColor
属性中使用以下公式:
=Code.GreenBarColour
要重置报告末尾的总行颜色(单击“总计”单元格的绿色角以访问这些属性),请为BackgroundColor
属性添加以下公式:
=Code.GreenBar("")