以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何按天数进行分别求值? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68776) |
||||
-- 作者:hrw68529 -- 发布时间:2015/5/25 8:49:00 -- [求助]如何按天数进行分别求值? 下边一段代码,分2天进行,每天的成绩分别求面试室平均值,加权平均值,加权系数,现在是2天一起,如何修改代码,请指教 If e.DataCol.name="天数" OrElse e.DataCol.name="面试室" Then If e.DataRow.IsNull("天数")=False AndAlso e.DataRow.IsNull("面试室")=False Then Dim zgf1, zgf2, zdf1, zdf2 As Double Dim drs As List(Of DataRow) = DataTables("笔试成绩").Select("天数=\'" & e.DataRow("天数") & "\' and 面试室=\'" & e.DataRow("面试室") & "\'And 本场面试成绩 Is Not Null", "本场面试成绩") zgf1 = drs(drs.Count-1)("本场面试成绩") zgf2 = drs(drs.Count-2)("本场面试成绩") zdf1 = drs(0)("本场面试成绩") zdf2 = drs(1)("本场面试成绩") Dim sum As Double = DataTables("笔试成绩").Compute("sum(本场面试成绩)","天数=\'" & e.DataRow("天数") & "\' and 面试室=\'" & e.DataRow("面试室") & "\'") e.DataRow("面试室平均值") = Format((sum - zgf1 - zgf2 - zdf1 - zdf2) /( drs.Count - 4),"0.0000") e.DataRow("加权平均值") = Format(e.DataTable.Compute("avg(面试室平均值)"),"0.0000") e.DataRow("加权系数") = Format(e.DataRow("加权平均值")/e.DataRow("面试室平均值"),"0.0000") e.DataRow("计数") = DataTables("笔试成绩").Compute("Count(总成绩)","天数 = \'" & e.DataRow("天数") & "\' and 面试室 = \'" & e.DataRow("面试室") & "\'") End If Else If e.DataCol.Name = "面试室平均值" Then For Each dr As DataRow In e.DataTable.DataRows dr("加权平均值") = Format(e.DataTable.Compute("avg(面试室平均值)"),"0.0000") Next e.DataRow("加权系数") = Format(e.DataRow("加权平均值") / e.DataRow("面试室平均值"),"0.0000") End If |
||||
-- 作者:hrw68529 -- 发布时间:2015/5/25 9:03:00 -- dr("加权平均值") = Format(e.DataTable.Compute("avg(面试室平均值)"),"0.0000") 这一句怎么改??????
|
||||
-- 作者:大红袍 -- 发布时间:2015/5/25 9:15:00 -- dr("加权平均值") = Format(e.DataTable.Compute("avg(面试室平均值)", "天数=\'" & e.DataRow("天数") & "\'"),"0.0000")
|
||||
-- 作者:大红袍 -- 发布时间:2015/5/25 9:15:00 -- 问问题,请上传具体例子。 |
||||
-- 作者:hrw68529 -- 发布时间:2015/5/25 9:53:00 -- 上例子:在加树计算表属性中,请修改。 |
||||
-- 作者:hrw68529 -- 发布时间:2015/5/25 9:54:00 -- 加权计算表属性中修改,现在是不能按天进行计算, |
||||
-- 作者:大红袍 -- 发布时间:2015/5/25 10:02:00 -- 数据库发上来,同时说明怎么计算。 [此贴子已经被作者于2015/5/25 10:02:25编辑过]
|
||||
-- 作者:hrw68529 -- 发布时间:2015/5/25 10:14:00 -- 数据库:
计算数据: (1)面试室平均值:按天数、按面试室分别去掉2个最高分,去掉2个最低分,然后计算每个面试室剩下人员的“面试室平均值”; (2)加权平均值:按天,计算出“面试室平均值”的平均值; (2)加权系数:按天,将“加权平均值”除以“面试室平均值” |
||||
-- 作者:大红袍 -- 发布时间:2015/5/25 10:38:00 -- 思路有问题,不要在Datacolchanged事件计算。
你这样适合直接填充后计算,做个按钮
systemReady = False Dim zgf1, zgf2, zdf1, zdf2 As Double |
||||
-- 作者:hrw68529 -- 发布时间:2015/5/25 11:02:00 -- 按你所讲,把代码复制进去后,出现以下情况, |