Foxtable(狐表)用户栏目专家坐堂 → [求助]加权计算如何写代码


  共有4861人关注过本帖树形打印复制链接

主题:[求助]加权计算如何写代码

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/4 18:34:00 [显示全部帖子]

 面试室平均值,这样算,剩下的自己试试做

 

        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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 11:42:00 [显示全部帖子]

代码,如下

 

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
End If

[此贴子已经被作者于2014-5-5 11:43:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 14:10:00 [显示全部帖子]

 回复6楼,代码哪里不行?能否具体说说?谁知道你哪里不对啊

 

 你给的项目,没有带有对应的数据库。

[此贴子已经被作者于2014-5-5 14:10:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 14:45:00 [显示全部帖子]

 用下面的代码,记得重新输入数据,或者重置列一下列

 

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


 回到顶部