Chr☆s Kwok 的技术笔记

.NET, C#, WPF, WCF, WF, .NetCore & LINQ ... I know how it works because I know why it works ...

博客园 首页 新随笔 订阅 管理

通常分组统计报表的组头(或组尾)显示分组字段名称及度量值的聚合(求和, 求平均或方差等),然而有时候我们希望显示明细项目名称串联。如下图,左边为普通分组展现,右边为自定义聚合效果:

常规的分组报表不做赘述,主要介绍自定义聚合报表设计,下图是报表设计界面:

该报表的自定义代码:

代码
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(见下面类图):

posted on 2010-07-28 16:23  Chr☆s  阅读(1435)  评论(0编辑  收藏  举报