DataTables("师表").loadfilter = ""
DataTables("师表").load
Dim g As New sqlGroupTableBuilder("统计表1","小生表")
Dim dt1 As Table = Tables("期末_table6")
g.C
g.Groups.AddDef("考试名称")
g.Groups.AddDef("学校")
g.Groups.AddDef("年级")
g.Groups.AddDef("类别")
g.Groups.AddDef("学校班级")
g.Totals.AddDef("姓名",AggregateEnum.Count,"参考数")
g.Totals.AddDef("语文",AggregateEnum.Average,"语文_人平")
g.Totals.AddDef("数学",AggregateEnum.Average,"数学_人平")
g.Totals.AddDef("英语",AggregateEnum.Average,"英语_人平")
g.Totals.AddDef("政治",AggregateEnum.Average,"政治_人平")
g.Totals.AddDef("历史",AggregateEnum.Average,"历史_人平")
g.Totals.AddDef("物理",AggregateEnum.Average,"物理_人平")
g.Totals.AddDef("化学",AggregateEnum.Average,"化学_人平")
g.Totals.AddDef("生物",AggregateEnum.Average,"生物_人平")
g.Totals.AddDef("地理",AggregateEnum.Average,"地理_人平")
g.Totals.AddDef("总分",AggregateEnum.Average,"总分_人平")
g.Totals.AddDef("语文",AggregateEnum.sum,"语总")
g.Totals.AddDef("数学",AggregateEnum.sum,"数总")
g.Totals.AddDef("英语",AggregateEnum.sum,"英总")
g.Totals.AddDef("政治",AggregateEnum.sum,"政总")
g.Totals.AddDef("历史",AggregateEnum.sum,"历总")
g.Totals.AddDef("生物",AggregateEnum.sum,"生总")
g.Totals.AddDef("地理",AggregateEnum.sum,"地总")
g.Totals.AddDef("物理",AggregateEnum.sum,"物总")
g.Totals.AddDef("化学",AggregateEnum.sum,"化总")
g.Totals.AddDef("总分",AggregateEnum.sum,"总分")
g.Totals.AddExp("语文_优数", "case when convert(int,年级)<7 and 语文>=85 then 1 when convert(int,年级)>=7 and 语文>=80 then 1 else 0 end")
g.Totals.AddExp("数学_优数", "case when convert(int,年级)<7 and 数学>=85 then 1 when convert(int,年级)>=7 and 数学>=80 then 1 else 0 end")
g.Totals.AddExp("英语_优数", "case when convert(int,年级)>=7 and 英语>=80 then 1 else 0 end")
g.Totals.AddExp("政治_优数", "case when convert(int,年级)>=7 and 政治>=80 then 1 else 0 end")
g.Totals.AddExp("历史_优数", "case when convert(int,年级)>=7 and 历史>=80 then 1 else 0 end")
g.Totals.AddExp("生物_优数", "case when convert(int,年级)>=7 and 生物>=80 then 1 else 0 end")
g.Totals.AddExp("地理_优数", "case when convert(int,年级)>=7 and 地理>=80 then 1 else 0 end")
g.Totals.AddExp("物理_优数", "case when convert(int,年级)>=8 and 物理>=80 then 1 else 0 end")
g.Totals.AddExp("化学_优数", "case when convert(int,年级)>=9 and 化学>=80 then 1 else 0 end")
g.Totals.AddExp("语文_及数", "case when 语文>=60 then 1 else 0 end")
g.Totals.AddExp("数学_及数", "case when 数学>=60 then 1 else 0 end")
g.Totals.AddExp("英语_及数", "case when 英语>=60 then 1 else 0 end")
g.Totals.AddExp("政治_及数", "case when 政治>=60 then 1 else 0 end")
g.Totals.AddExp("历史_及数", "case when 历史>=60 then 1 else 0 end")
g.Totals.AddExp("生物_及数", "case when 生物>=60 then 1 else 0 end")
g.Totals.AddExp("地理_及数", "case when 地理>=60 then 1 else 0 end")
g.Totals.AddExp("物理_及数", "case when 物理>=60 then 1 else 0 end")
g.Totals.AddExp("化学_及数", "case when 化学>=60 then 1 else 0 end")
dt1.DataSource = g.BuildDataSource()
dt1.DataTable.DataCols.Add("语文_教师",Gettype(String))
dt1.DataTable.DataCols.Add("数学_教师",Gettype(String))
dt1.DataTable.DataCols.Add("英语_教师",Gettype(String))
dt1.DataTable.DataCols.Add("政治_教师",Gettype(String))
dt1.DataTable.DataCols.Add("历史_教师",Gettype(String))
dt1.DataTable.DataCols.Add("物理_教师",Gettype(String))
dt1.DataTable.DataCols.Add("化学_教师",Gettype(String))
dt1.DataTable.DataCols.Add("生物_教师",Gettype(String))
dt1.DataTable.DataCols.Add("地理_教师",Gettype(String))
dt1.DataTable.DataCols.Add("汇总标识",Gettype(String))
dt1.DataTable.DataCols.Add("语文_优秀率",Gettype(Double),"语文_优数 / 参考数")
dt1.DataTable.DataCols.Add("数学_优秀率",Gettype(Double),"数学_优数 / 参考数")
dt1.DataTable.DataCols.Add("英语_优秀率",Gettype(Double),"iif(年级 in ('7','8','9'), 英语_优数 / 参考数, null)")
dt1.DataTable.DataCols.Add("政治_优秀率",Gettype(Double),"iif(年级 in ('7','8','9'), 政治_优数 / 参考数, null)")
dt1.DataTable.DataCols.Add("历史_优秀率",Gettype(Double),"iif(年级 in ('7','8','9'), 历史_优数 / 参考数, null)")
dt1.DataTable.DataCols.Add("生物_优秀率",Gettype(Double),"iif(年级 in ('7','8'), 生物_优数 / 参考数, null)")
dt1.DataTable.DataCols.Add("地理_优秀率",Gettype(Double),"iif(年级 in ('7','8'), 地理_优数 / 参考数, null)")
dt1.DataTable.DataCols.Add("物理_优秀率",Gettype(Double),"iif(年级 in ('8','9'), 物理_优数 / 参考数, null)")
dt1.DataTable.DataCols.Add("化学_优秀率",Gettype(Double),"iif(年级 in ('9'), 化学_优数 / 参考数, null)")
dt1.DataTable.DataCols.Add("语文_及格率",Gettype(Double),"语文_及数 / 参考数")
dt1.DataTable.DataCols.Add("数学_及格率",Gettype(Double),"数学_及数 / 参考数")
dt1.DataTable.DataCols.Add("英语_及格率",Gettype(Double),"iif(年级 in ('7','8','9'), 英语_及数 / 参考数, null)")
dt1.DataTable.DataCols.Add("政治_及格率",Gettype(Double),"iif(年级 in ('7','8','9'), 政治_及数 / 参考数, null)")
dt1.DataTable.DataCols.Add("历史_及格率",Gettype(Double),"iif(年级 in ('7','8','9'), 历史_及数 / 参考数, null)")
dt1.DataTable.DataCols.Add("生物_及格率",Gettype(Double),"iif(年级 in ('7','8'), 生物_及数 / 参考数, null)")
dt1.DataTable.DataCols.Add("地理_及格率",Gettype(Double),"iif(年级 in ('7','8'), 地理_及数 / 参考数,null)")
dt1.DataTable.DataCols.Add("物理_及格率",Gettype(Double),"iif(年级 in ('8','9'), 物理_及数 / 参考数, null)")
dt1.DataTable.DataCols.Add("化学_及格率",Gettype(Double),"iif(年级 in ('9'), 化学_及数 / 参考数, null)")
dt1.DataTable.DataCols("语文_优秀率").SetFormat("#0.0%")
dt1.DataTable.DataCols("数学_优秀率").SetFormat("#0.0%")
dt1.DataTable.DataCols("英语_优秀率").SetFormat("#0.0%")
dt1.DataTable.DataCols("政治_优秀率").SetFormat("#0.0%")
dt1.DataTable.DataCols("历史_优秀率").SetFormat("#0.0%")
dt1.DataTable.DataCols("物理_优秀率").SetFormat("#0.0%")
dt1.DataTable.DataCols("化学_优秀率").SetFormat("#0.0%")
dt1.DataTable.DataCols("生物_优秀率").SetFormat("#0.0%")
dt1.DataTable.DataCols("地理_优秀率").SetFormat("#0.0%")
dt1.DataTable.DataCols("语文_及格率").SetFormat("#0.0%")
dt1.DataTable.DataCols("数学_及格率").SetFormat("#0.0%")
dt1.DataTable.DataCols("英语_及格率").SetFormat("#0.0%")
dt1.DataTable.DataCols("政治_及格率").SetFormat("#0.0%")
dt1.DataTable.DataCols("历史_及格率").SetFormat("#0.0%")
dt1.DataTable.DataCols("物理_及格率").SetFormat("#0.0%")
dt1.DataTable.DataCols("化学_及格率").SetFormat("#0.0%")
dt1.DataTable.DataCols("生物_及格率").SetFormat("#0.0%")
dt1.DataTable.DataCols("地理_及格率").SetFormat("#0.0%")
dt1.DataTable.DataCols.Add("语文_优类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("数学_优类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("英语_优类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("政治_优类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("历史_优类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("生物_优类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("地理_优类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("物理_优类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("化学_优类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("总分_类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("语文_及类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("数学_及类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("英语_及类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("政治_及类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("历史_及类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("生物_及类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("地理_及类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("物理_及类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("化学_及类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("语文_人平类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("数学_人平类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("英语_人平类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("政治_人平类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("历史_人平类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("生物_人平类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("地理_人平类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("物理_人平类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("化学_人平类序",Gettype(Integer))
dt1.DataTable.DataCols.Add("语文_优区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("数学_优区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("英语_优区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("政治_优区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("历史_优区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("生物_优区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("地理_优区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("物理_优区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("化学_优区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("总分_区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("语文_及区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("数学_及区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("英语_及区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("政治_及区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("历史_及区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("生物_及区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("地理_及区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("物理_及区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("化学_及区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("语文_人平区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("数学_人平区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("英语_人平区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("政治_人平区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("历史_人平区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("生物_人平区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("地理_人平区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("物理_人平区序",Gettype(Integer))
dt1.DataTable.DataCols.Add("化学_人平区序",Gettype(Integer))
'dt1.DataTable.DataCols.Add("语文_总分",Gettype(Double),"语文_人平 * 参考数")
Dim ds As DataRow
For Each r As Row In Tables("期末_table6").Rows
ds = DataTables("师表").Find("考试名称 = '" & r("考试名称") & "'and 学校班级 = '" & r("学校班级") & "'" )
If ds IsNot Nothing
r("语文_教师")= ds("语文教师")
r("数学_教师")= ds("数学教师")
r("英语_教师")= ds("英语教师")
r("政治_教师")= ds("政治教师")
r("历史_教师")= ds("历史教师")
r("物理_教师")= ds("物理教师")
r("化学_教师")= ds("化学教师")
r("生物_教师")= ds("生物教师")
r("地理_教师")= ds("地理教师")
End If
Next
Dim Ays As List(Of String())
Ays = t.DataTable.GetValues("考试名称|年级|类别") '列名用符号|分割
Dim jAys As List(Of String())
jAys = t.DataTable.GetValues("考试名称|年级") '列名用符号|分割
t.StopRedraw
For Each Ay As String() In Ays
Dim f As String = "考试名称='" & Ay(0) & "' And 年级='" & Ay(1) & "' and 类别='" & Ay(2) & "'"
Dim r As Row = t.AddNew()
r("考试名称") = ay(0)
r("年级") = Ay(1)
r("类别") = "总计" & Ay(2)
r("汇总标识") = "汇总"
r("学校班级") = t.Compute("Count(学校班级)",f) & "个班"
r("参考数") = t.Compute("Sum(参考数)",f)
r("语文_人平") = t.compute("sum(语总)",f)/ r("参考数")
r("数学_人平") = t.compute("sum(数总)",f)/ r("参考数")
If val(ay(1)) > 6
r("英语_人平") = t.compute("sum(英总)",f)/ r("参考数")
r("政治_人平") = t.compute("sum(政总)",f)/ r("参考数")
r("历史_人平") = t.compute("sum(历总)",f)/ r("参考数")
r("生物_人平") = t.compute("sum(生总)",f)/ r("参考数")
r("地理_人平") = t.compute("sum(地总)",f)/ r("参考数")
End If
If val(ay(1)) >7
r("物理_人平") = t.compute("sum(物总)",f)/ r("参考数")
End If
If val(ay(1)) >8
r("化学_人平") = t.compute("sum(化总)",f)/ r("参考数")
End If
r("总分_人平") = t.compute("sum(总分)",f)/ r("参考数")
' r("语文_优秀率") = t.compute("sum(语文_优数)",f)/r("参考数")
' r("数学_优秀率") = t.compute("sum(数学_优数)",f)/r("参考数")
' r("英语_优秀率") = t.compute("sum(英语_优数)",f)/r("参考数")
' r("政治_优秀率") = t.compute("sum(政治_优数)",f)/r("参考数")
' r("历史_优秀率") = t.compute("sum(历史_优数)",f)/r("参考数")
' r("生物_优秀率") = t.compute("sum(生物_优数)",f)/r("参考数")
' r("地理_优秀率") = t.compute("sum(地理_优数)",f)/r("参考数")
' r("物理_优秀率") = t.compute("sum(物理_优数)",f)/r("参考数")
' r("化学_优秀率") = t.compute("sum(化学_优数)",f)/r("参考数")
Next
For Each jAy As String() In jAys
Dim f As String = "考试名称='" & jAy(0) & "' And 年级='" & jAy(1) & "'"
Dim r As Row = t.AddNew()
r("考试名称") = jay(0)
r("年级") = jAy(1)
r("类别") = "总计全区" & jay(1) & "年级"
r("汇总标识") = "汇总全区"
r("学校班级") = t.Compute("Count(学校班级)",f) & "个班"
r("参考数") = t.Compute("Sum(参考数)",f)
r("语文_人平") = t.compute("sum(语总)",f)/ r("参考数")
r("数学_人平") = t.compute("sum(数总)",f)/ r("参考数")
If val(jay(1)) > 6
r("英语_人平") = t.compute("sum(英总)",f)/ r("参考数")
r("政治_人平") = t.compute("sum(政总)",f)/ r("参考数")
r("历史_人平") = t.compute("sum(历总)",f)/ r("参考数")
r("生物_人平") = t.compute("sum(生总)",f)/ r("参考数")
r("地理_人平") = t.compute("sum(地总)",f)/ r("参考数")
End If
If val(jay(1)) >7
r("物理_人平") = t.compute("sum(物总)",f)/ r("参考数")
End If
If val(jay(1)) >8
r("化学_人平") = t.compute("sum(化总)",f)/ r("参考数")
End If
r("总分_人平") = t.compute("sum(总分)",f)/ r("参考数")
' r("语文_优秀率") = t.compute("sum(语文_优数)",f)/r("参考数")
' r("数学_优秀率") = t.compute("sum(数学_优数)",f)/r("参考数")
' r("英语_优秀率") = t.compute("sum(英语_优数)",f)/r("参考数")
' r("政治_优秀率") = t.compute("sum(政治_优数)",f)/r("参考数")
' r("历史_优秀率") = t.compute("sum(历史_优数)",f)/r("参考数")
' r("生物_优秀率") = t.compute("sum(生物_优数)",f)/r("参考数")
' r("地理_优秀率") = t.compute("sum(地理_优数)",f)/r("参考数")
' r("物理_优秀率") = t.compute("sum(物理_优数)",f)/r("参考数")
' r("化学_优秀率") = t.compute("sum(化学_优数)",f)/r("参考数")
Next
t.ResumeRedraw
dt1.Sort = "考试名称,年级,汇总标识,类别,学校班级"
dt1.SetColVisibleWidth("考试名称|69|年级|44|类别|44|学校|108|学校班级|75|参考数|47|语文_教师|47|语文_优秀率|47|语文_优区序|47|语文_优类序|47|语文_及格率|47|语文_及类序|47|语文_及区序|47|语文_人平|34|语文_人平类序|59|语文_人平区序|59|数学_教师|47|数学_优秀率|47|数学_优类序|47|数学_优区序|47|数学_及格率|47|数学_及类序|47|数学_及区序|47|数学_人平|34|数学_人平类序|59|数学_人平区序|59|英语_教师|47|英语_优秀率|47|英语_优类序|47|英语_优区序|47|英语_及格率|47|英语_及类序|47|英语_及区序|47|英语_人平|34|英语_人平类序|59|英语_人平区序|59|政治_教师|47|政治_优秀率|47|政治_优类序|47|政治_优区序|47|政治_及格率|47|政治_及类序|47|政治_及区序|47|政治_人平|34|政治_人平类序|59|政治_人平区序|59|历史_教师|47|历史_优秀率|47|历史_优类序|47|历史_优区序|47|历史_及格率|47|历史_及类序|47|历史_及区序|47|历史_人平|34|历史_人平类序|59|历史_人平区序|59|物理_教师|47|物理_优秀率|47|物理_优类序|47|物理_优区序|47|物理_及格率|47|物理_及类序|47|物理_及区序|47|物理_人平|34|物理_人平类序|59|物理_人平区序|59|化学_教师|47|化学_优秀率|47|化学_优类序|47|化学_优区序|47|化学_及格率|47|化学_及类序|47|化学_及区序|47|化学_人平|34|化学_人平类序|59|化学_人平区序|59|生物_教师|47|生物_优秀率|47|生物_优类序|47|生物_优区序|47|生物_及格率|47|生物_及类序|47|生物_及区序|47|生物_人平|34|生物_人平类序|59|生物_人平区序|59|地理_教师|47|地理_优秀率|47|地理_优类序|47|地理_优区序|47|地理_及格率|47|地理_及类序|47|地理_及区序|47|地理_人平|34|地理_人平类序|59|地理_人平区序|59|总分_人平|44|总分_类序|34|总分_区序|34")