Foxtable(狐表)用户栏目专家坐堂 → [求助]如何实现年级排名与班级排名公式


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

主题:[求助]如何实现年级排名与班级排名公式

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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/27 20:33:00 [显示全部帖子]

添加对应的语文年级排名、语文班级排名等等列,然后代码条件改为年级不就行了

Tables("学生成绩汇总表").StopRedraw
Dim bjs As List(Of String) = DataTables("学生成绩汇总表").GetValues("年级","[年级] Is Not NULL")
Dim Count As Integer
Dim ColNames() As String = {"语文","数学","英语","化学","物理","总分"} 
Dim TotalName As String 
For Each ColName As String In ColNames '
    For i As Integer = 0 To bjs.Count -1 
        Dim drs As List(Of DataRow) = DataTables("学生成绩汇总表").Select("[年级] = " & bjs(i), ColName & " DESC")
        Count = 0
        TotalName = ColName & "年级排名"
        For n As Integer = 0 To drs.Count - 1
            Count = Count + 1
            If n > 0 AndAlso drs(n)(ColName ) = drs(n-1)(ColName) Then
                drs(n)(TotalName ) = drs(n-1)(TotalName ) 
            Else
                drs(n)(TotalName ) = Count
            End If
        Next
    Next 
Next
Tables("学生成绩汇总表").Sort = "总分 DESC"
Tables("学生成绩汇总表").ResumeRedraw

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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/27 20:34:00 [显示全部帖子]

如果要班级年级同时排名,先调用1楼的代码,再调用3楼的代码即可

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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 9:24:00 [显示全部帖子]

Tables("学生成绩汇总表").StopRedraw
Dim bjs As List(Of String) = DataTables("学生成绩汇总表").GetValues("年级","[年级] Is Not NULL")
Dim Count As Integer
Dim ColNames() As String = {"语文","数学","英语","化学","物理","政治","历史","地理","生物","总分"} 
Dim TotalName As String 
For Each ColName As String In ColNames '
    For i As Integer = 0 To bjs.Count -1 
        Dim drs As List(Of DataRow) = DataTables("学生成绩汇总表").Select("[年级] = '" & bjs(i) & "'", ColName & " DESC")
        Count = 0
        TotalName = ColName & "年级排名"
        For n As Integer = 0 To drs.Count - 1
            Count = Count + 1
            If n > 0 AndAlso drs(n)(ColName ) = drs(n-1)(ColName) Then
                drs(n)(TotalName ) = drs(n-1)(TotalName ) 
            Else
                drs(n)(TotalName ) = Count
            End If
        Next
    Next 
Next
Tables("学生成绩汇总表").Sort = "总分 DESC"
Tables("学生成绩汇总表").ResumeRedraw

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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 9:42:00 [显示全部帖子]

表达式的字符串需要使用单引号引起来:http://www.foxtable.com/webhelp/topics/1284.htm

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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 10:18:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 11:08:00 [显示全部帖子]

dim r as rwo = tables("某表").current

If r isnot nothing Then

    Dim nms() As String = {"数学客观","英语客观","物理客观","化学客观"}

    If e.NewValue Is Nothing Then

        For Each nm As String In nms

            e.DataRow(nm) = Nothing

        Next

    Else

        Dim dr As DataRow

        dr = DataTables("客观题").Find("[学号] = '" & r("学号") & "'")

        If dr IsNot Nothing

            For Each nm As String In nms

                r(nm) = dr(nm)

            Next

        End If

    End If

End If


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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 14:28:00 [显示全部帖子]

dim r as rwo = tables("某表").current

If r isnot nothing Then

    Dim nms() As String = {"数学客观","英语客观","物理客观","化学客观"}

    If r.isnull("学号") Then

        For Each nm As String In nms

            r(nm) = Nothing

        Next

    Else

        Dim dr As DataRow

        dr = DataTables("客观题").Find("[学号] = '" & r("学号") & "'")

        If dr IsNot Nothing

            For Each nm As String In nms

                r(nm) = dr(nm)

            Next

        End If

    End If

End If


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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/29 9:09:00 [显示全部帖子]

打错字而已,不过是很简单的问题,自己改正:http://www.foxtable.com/webhelp/topics/0593.htm

 回到顶部