用下面的代码,记得重新输入数据,或者重置列一下列
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("面试室") & "'", "本场面试成绩")
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("面试室平均值") = (sum - zgf1 - zgf2 - zdf1 - zdf2) /( drs.Count - 4)
e.DataRow("加权平均值") = e.DataTable.Compute("avg(面试室平均值)")
e.DataRow("加权系数") = e.DataRow("加权平均值")/e.DataRow("面试室平均值")
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("加权平均值") = e.DataTable.Compute("avg(面试室平均值)")
Next
e.DataRow("加权系数") = e.DataRow("加权平均值") / e.DataRow("面试室平均值")
End If