数据源:MSSQL2000
外部表名:"xxx"
统计用到的列:"年龄"\"锁定"\"审核状态"
"年龄分组"
Dim old As String
Dim n As Integer = 5 '年龄段划分的区间值
Dim p As Integer = 20 '年龄段的区间数目
For i As Integer = 0 To p
Dim d As String = Format(i * n,"000") & "-" & Format((i + 1) * n - 1,"000")
If i = 0 Then
old = "(Case When 年龄 < " & (i + 1) * n & " Then '" & d & "'"
ElseIf i = p Then
old = old & " When 年龄 < " & (i + 1) * n & " Then '" & d & "' Else '大于" & (i + 1) * n & "' End)"
Else
old = old & " When 年龄 < " & (i + 1) * n & " Then '" & d & "'"
End If
Next
Dim nl1 As New SQLGroupTableBuilder("统计表1","xxx")
nl1.C
nl1.Groups.AddExp("年龄段", old)
nl1.Totals.AddDef("锁定", AggregateEnum.Count, "未审核")
nl1.Filter = "审核状态 = '未审核'"
Dim dsnl1 As fxDataSource
dsnl1 = nl1.BuildDataSource()
Dim nl2 As New SQLGroupTableBuilder("统计表2","xxx")
nl2.C
nl2.Groups.AddExp("年龄段", old)
nl2.Totals.AddDef("锁定", AggregateEnum.Count, "已审核")
nl2.Filter = "审核状态 = '已审核'"
nl2.GrandProportion = True
Dim dsnl2 As fxDataSource
dsnl2 = nl2.BuildDataSource()
dsnl1.Combine("年龄段",dsnl2,"年龄段")
Dim t_nl As Table = Tables("窗口A_Table1")
t_nl.DataSource = dsnl1
Dim g_nl As Subtotalgroup
t_nl.SubtotalGroups.Clear()
g_nl = New Subtotalgroup '定义一个新的分组
g_nl.Aggregate = AggregateEnum.Sum '统计类型为求和
g_nl.GroupOn = "*" '分组列
g_nl.TotalOn = "未审核,已审核" '设置统计列
g_nl.Caption = "小计" '设置标题
t_nl.Sort = "年龄段"
t_nl.SubtotalGroups.Add(g_nl) '加到分组集合中
t_nl.Subtotal() '生成汇总模式
t_nl.AutoSizeCols
Forms("窗口A").Controls("Table1").Visible = True
DataTables("窗口A_Table1").SysStyles("Alternate").BackColor = Color.PowderBlue