Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
下载信息 [文件大小: 下载次数: ] | |
点击浏览该文件:易表学生评教分析系统2008.11.rar |
下载信息 [文件大小: 下载次数: ] | |
点击浏览该文件:学生评教表.rar |
虽然可以实现,但是表结构有问题,这是一个原始评分数据表,通常不应该在这里头进行统计,而是有一个单独的统计表,同级每一个教师的平均得分和排名。
另外,请不要用这么复杂的列名,表头应该考虑用列标题来实现。
我利用命令窗口设置了两项的计算,大概3秒左右可以出结果,其余的可以自己加进去。
Dim Names As List(Of String)
Names = DataTables("学生评分表").GetUniqueValues("","教师姓名")
For Each Name As String In Names
Dim Sum As Double = DataTables("学生评分表").Compute("Sum(你认为老师的教学态度_合计)","[教师姓名] = '" & Name & "'")
Dim Count As Integer = DataTables("学生评分表").Compute("Count(教师姓名)","[教师姓名] = '" & Name & "'")
Dim Drs As List(Of DataRow) = DataTables("学生评分表").Select("[教师姓名] = '" & Name & "'")
Dim Avg As Double = Math.Round(Sum / Count,3)
For Each dr As DataRow In Drs
dr("你认为老师的教学态度_单项平均") = avg
Next
Sum = DataTables("学生评分表").Compute("Sum(你认为老师创设的课堂情景_合计)","[教师姓名] = '" & Name & "'")
Count = DataTables("学生评分表").Compute("Count(教师姓名)","[教师姓名] = '" & Name & "'")
Drs = DataTables("学生评分表").Select("[教师姓名] = '" & Name & "'")
Avg = Math.Round(Sum / Count,3)
For Each dr As DataRow In Drs
dr("你认为老师创设的课堂情景_单项平均") = avg
Next
Next
不过这样的设计始终是有问题的,应该有单独的统计表,否则计算的耗时可以忍受,但是存盘就慢多了,可能要几分钟,因为foxtable只保存修改过的行,所以日常的应用存盘效率高过易表,但是你这样设计的话,等于每次计算后,11万行全部被修改过,存盘的速度可想而知。
不太明白,因为对狐表还不是太懂,总认为是易表的升级,但做起来,却不如易表易。那么应该怎么设计。讲得再具体些。谢谢。
你应该删除学生评分中的所有单项平均列,直接在教师得分表中加上单项平均栏目,在这里进行统计。
好的表结构是一个好系统的基础,就像房子的地基。
提醒的对,那么用三楼的代码,需要改些什么??