代码1:
Dim g As New GroupTableBuilder("临时表1", DataTables("考试秩序"))
g.Groups.AddDef("选课信息_考点")
g.Groups.AddDef("选课信息_考试日期")
g.Groups.AddDef("选课信息_考试时间")
g.Groups.AddDef("考场信息_教室")
g.Totals.AddDef("考场信息_教室", AggregateEnum.Count, "次数")
Dim dt As DataTable = g.Build(True) '采用临时表汇总,统计型号根据内容多少自动延伸,代码:
Dim max As Integer = dt.Compute("max(次数)")
Dim dtb As New
DataTableBuilder("统计表3")
dtb.AddDef("选课信息_考点", GetType(String), 16)
dtb.AddDef("选课信息_考试日期", GetType(String), 16)
dtb.AddDef("选课信息_考试时间", GetType(String), 16)
dtb.AddDef("考场信息_教室", GetType(String), 16)
Dim lst As New
List(Of
String)
For i As Integer = 1 To max
dtb.AddDef("参考" & i & "_专业及考生数", GetType(String), 30)
Next
dtb.Build()'生成统计表
Dim r As Row
Dim dr As DataRow
For Each ss() As String In DataTables("考试秩序").GetValues("选课信息_考点|选课信息_考试日期|选课信息_考试时间|考场信息_教室")
r = Tables("统计表3").AddNew
r("选课信息_考点") =
ss(0)
r("选课信息_考试日期") = ss(1)
r("选课信息_考试时间") = ss(2)
r("考场信息_教室") =
ss(3)
Dim drs As List(Of
DataRow) = DataTables("考试秩序").Select("考场信息_教室='" & ss(3) & "' and 选课信息_考试时间='" & ss(2) & "' and 选课信息_考试日期='" & ss(1) & "' and 考场信息_考点='" & ss(0) & "'",
"考场信息_教室")
For j As Integer = 0 To
drs.Count - 1
dr = drs(j)
r("参考" & (j + 1) & "_专业及考生数") = dr("选课信息_试卷名称") & “(” & dr("选课信息_参考人数") & “)”
Next
'以下代码增加参考人数合计
Dim a As String
a = Tables("考试秩序").DataTable.Compute("Sum(选课信息_参考人数)", "考场信息_教室 =
'" & ss(3) & "' and 选课信息_考试时间='" & ss(2) & "' and 选课信息_考试日期='" & ss(1) & "' and 考场信息_考点='" & ss(0) & "'")
DataTables("统计表3").DataCols.Add("参考人数合计", GetType(Double), a)
Next
MainTable = Tables("统计表3") '打开生成的统计表
代码2:
Dim g As New GroupTableBuilder("临时表2", DataTables("考试秩序"))
g.Groups.AddDef("选课信息_考点")
g.Groups.AddDef("选课信息_考试日期")
g.Groups.AddDef("选课信息_考试时间")
g.Groups.AddDef("选课信息_试卷名称")
g.Totals.AddDef("选课信息_试卷名称", AggregateEnum.Count, "次数")
Dim dt As DataTable = g.Build(True) '采用临时表汇总,统计型号根据内容多少自动延伸,代码:
Dim max As Integer = dt.Compute("max(次数)")
Dim dtb As New
DataTableBuilder("统计表2")
dtb.AddDef("选课信息_考点", GetType(String), 16)
dtb.AddDef("选课信息_考试日期", GetType(String), 16)
dtb.AddDef("选课信息_考试时间", GetType(String), 16)
dtb.AddDef("选课信息_试卷名称", GetType(String), 30)
dtb.AddDef("选课信息_参考人数", GetType(String), 16)
Dim lst As New
List(Of
String)
For i As Integer = 1 To max
dtb.AddDef("考室" & i & "_考室及考生数", GetType(String), 30)
Next
dtb.Build()'生成统计表
Dim r As Row
Dim dr As DataRow
For Each ss() As String In DataTables("考试秩序").GetValues("选课信息_考点|选课信息_考试日期|选课信息_考试时间|选课信息_试卷名称")
r = Tables("统计表2").AddNew
r("选课信息_考点") =
ss(0)
r("选课信息_考试日期") = ss(1)
r("选课信息_考试时间") = ss(2)
r("选课信息_试卷名称") = ss(3)
Dim drs As List(Of
DataRow) = DataTables("考试秩序").Select("选课信息_试卷名称='" & ss(3) & "' and 选课信息_考试时间='" & ss(2) & "' and 选课信息_考试日期='" & ss(1) & "' and 考场信息_考点='" & ss(0) & "'",
"考场信息_教室")
For j As Integer = 0 To
drs.Count - 1
dr = drs(j)
r("考室" & (j + 1) & "_考室及考生数") = dr("考场信息_教室") & “(” & dr("选课信息_参考人数") & “)”
Next
r("选课信息_参考人数") = dr("选课信息_参考人数")
Next
MainTable = Tables("统计表2") '打开生成的统计表
老师,上述两段代码,均出现参考人数统计错误,请蓝老师帮忙修改一下。