通常分组统计报表的组头(或组尾)显示分组字段名称及度量值的聚合(求和, 求平均或方差等),然而有时候我们希望显示明细项目名称串联。如下图,左边为普通分组展现,右边为自定义聚合效果:
常规的分组报表不做赘述,主要介绍自定义聚合报表设计,下图是报表设计界面:
该报表的自定义代码:
代码
Dim values As System.Collections.ArrayList
Sub AddValue(ByVal newValue As String)
If (values Is Nothing) Then
values = New System.Collections.ArrayList()
End If
values.Add(newValue)
End Sub
Function GetNames(ByVal reset As Boolean) As String
Dim s As String = ""
Dim i As Integer
Dim count As Integer = values.Count
For i = 0 To count-1
s = s & ", " & values(i)
Next
GetNames = Mid(s, 3)
If (reset) Then values = Nothing
End Function
Function GetNamesA(ByVal s As String, ByVal reset As Boolean) As String
AddValue(s)
GetNamesA = GetNames(reset)
End Function
之后只需要将明细组设置仅显示最后一行,组头不显示即可。
明细组仅显示最后一行的设置是将其Visibility.Hidden置为=RowNumber("table2_Group1") < CountRows("table2_Group1")即可。
报表使用的数据集类型为IItemDetailResult(见下面类图):