以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 不存在列 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95410) |
-- 作者:刘林 -- 发布时间:2017/1/18 21:47:00 -- 不存在列 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")
|
-- 作者:刘林 -- 发布时间:2017/1/18 21:50:00 -- 老师,实现汇总表中再汇总,想了下办法做成这个样子,基本实现了目标,但 \' 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("参考数") 用这段代码时出现不存在“语文_优秀率“列,因为分类汇总也要统计各科优秀率,请问是什么原因 |
-- 作者:刘林 -- 发布时间:2017/1/18 22:01:00 -- 哦,不好意思,是提示 列“语文_优秀率”为只读。 |
-- 作者:有点色 -- 发布时间:2017/1/19 0:16:00 -- 把这句
dt1.DataTable.DataCols.Add("语文_优秀率",Gettype(Double),"语文_优数 / 参考数")
改成
dt1.DataTable.DataCols.Add("语文_优秀率",Gettype(Double))
如果你写了公式,默认就变成了表达式列的。
|
-- 作者:刘林 -- 发布时间:2017/1/19 10:22:00 -- Dim t As Table = Tables("期末_table6") t.Cols.Frozen = 6 \'t.sort = "考试名称,年级,类别,学校班级" 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("汇总标识") = 1 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) & "\' 汇总标识 =1 " Dim r As Row = t.AddNew() r("考试名称") = jay(0) r("年级") = jAy(1) r("类别") = "总计全区" & jay(1) & "年级" r("汇总标识") = 2 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 = "考试名称,年级,汇总标识,类别,学校班级" 老师上面红色的代码统计出来的班数为空呢
|
-- 作者:有点色 -- 发布时间:2017/1/19 10:24:00 -- Dim f As String = "考试名称=\'" & jAy(0) & "\' And 年级=\'" & jAy(1) & "\' 汇总标识 =1 "
改成
Dim f As String = "考试名称=\'" & jAy(0) & "\' And 年级=\'" & jAy(1) & "\' And 汇总标识 =1 " [此贴子已经被作者于2017/1/19 10:24:24编辑过]
|
-- 作者:刘林 -- 发布时间:2017/1/19 10:32:00 -- 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(Integer)) 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)) 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 t As Table = Tables("期末_table6") t.Cols.Frozen = 6 \'t.sort = "考试名称,年级,类别,学校班级" 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("汇总标识") = 1 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("参考数") Next For Each jAy As String() In jAys Dim f As String = "考试名称=\'" & jAy(0) & "\' And 年级=\'" & jAy(1) & "\' 汇总标识 < 1 " Dim r As Row = t.AddNew() r("考试名称") = jay(0) r("年级") = jAy(1) r("类别") = "总计全区" & jay(1) & "年级" r("汇总标识") = 2 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("参考数") Next t.ResumeRedraw dt1.Sort = "考试名称,年级,汇总标识,类别,学校班级" |
-- 作者:有点色 -- 发布时间:2017/1/19 10:33:00 -- 看6楼 |
-- 作者:刘林 -- 发布时间:2017/1/19 10:43:00 -- Dim f As String = "考试名称=\'" & jAy(0) & "\' And 年级=\'" & jAy(1) & "\' and 汇总标识 < 1 " 还是不行
|
-- 作者:有点色 -- 发布时间:2017/1/19 10:46:00 -- 那就改成
Dim f As String = ""
不断加条件,看是不是你条件没写对。 |