Foxtable(狐表)用户栏目专家坐堂 → 如何写班级的排名公式


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

主题:如何写班级的排名公式

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


加好友 发短信
等级:二尾狐 帖子:538 积分:5975 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2008/11/12 10:10:00 [只看该作者]

不对啊,不是按班排的序,这个是按全年级排的,我要是按班的排序

[此贴子已经被作者于2008-11-12 10:21:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/12 10:30:00 [只看该作者]

你这个里面没有年级列,如果要按年级排序,加上年级列,代码中的班级改为年级即可,原理一样。

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


加好友 发短信
等级:二尾狐 帖子:538 积分:5975 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2008/11/12 10:49:00 [只看该作者]

您没有明白我的意思,各科成绩包括总分在班这个范围排列.比如1班的语文、数学、在1班的排名,总分也是在1班这个小范围里面排序。

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


加好友 发短信
等级:二尾狐 帖子:538 积分:5975 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2008/11/12 11:34:00 [只看该作者]

CZY版的解答是正确的,但速度太慢了。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/12 11:59:00 [只看该作者]

e.Form.Controls("Label1").text="请稍等,正在计时..."

dim timestart,timeend as date

timestart=date.now

Dim pm As List(Of String) = CurrentTable.DataTable.GetUniqueValues("","班级")

Dim pmc As Integer

Dim ColNames() As String = {"数学","英语","化学","物理","总分"}

Dim TotalName As String

CurrentTable.Redraw = False '刷新表

For Each ColName As string In ColNames

    For i As Integer = 0 To pm.Count -1

        CurrentTable.Filter= "[班级] = " & pm(i)

        Currenttable.sort = ColName & " DESC"

        pmc = 0

        TotalName = ColName & "班级排名"

        For n As integer = 0 to Currenttable.rows.Count -1

            pmc = pmc +1

            If n > 0 AndAlso Currenttable.rows(n)(ColName) = Currenttable.rows(n-1)(ColName) Then

                CurrentTable.Rows(n)(TotalName ) = CurrentTable.Rows(n-1)(TotalName )

            Else

                CurrentTable.Rows(n)(TotalName ) = pmc

            End If

        Next

    Next

Next

Tables("学生各科成绩表").Sort = "总分 DESC" '排序,对总分列以降序排序

CurrentTable.Filter = "" '取消筛选

CurrentTable.Redraw = True '刷新表

timeend=date.now

e.Form.Controls("Label1").text="耗时" & (timeend-timestart).TotalSeconds & ""

Messagebox.Show("统计完毕!")

[此贴子已经被作者于2008-11-12 12:05:30编辑过]

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


加好友 发短信
等级:二尾狐 帖子:538 积分:5975 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2008/11/12 12:05:00 [只看该作者]

试过没有,速度怎么样。???73秒呵呵

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/12 12:15:00 [只看该作者]

要快,就用这个,0.5秒:

e.Form.Controls("Label1").text="请稍等,正在计时..."

dim timestart,timeend as date

timestart=date.now

Dim pm As List(Of String) = CurrentTable.DataTable.GetUniqueValues("","班级")

Dim pmc As Integer

Dim ColNames() As String = {"数学","英语","化学","物理","总分"}

Dim TotalName As String

CurrentTable.Redraw = False '刷新表

For Each ColName As string In ColNames

    For i As Integer = 0 To pm.Count -1

        If pm(i) = "" Then

            Continue for

        End If

        Dim drs As List(Of DataRow) = Currenttable.DataTable.Select("[班级] = " & pm(i), ColName & " DESC")

        pmc = 0

        TotalName = ColName & "班级排名"

        For n As integer = 0 To drs.Count - 1

            pmc = pmc +1

            If n > 0 AndAlso drs(n)(ColName ) = drs(n-1)(ColName) Then

                drs(n)(TotalName ) = drs(n-1)(TotalName )

            Else

                drs(n)(TotalName ) = pmc

            End If

        Next

    Next

Next

Tables("学生各科成绩表").Sort = "总分 DESC" '排序,对总分列以降序排序

CurrentTable.Redraw = True '刷新表

timeend=date.now

e.Form.Controls("Label1").text="耗时" & (timeend-timestart).TotalSeconds & "秒"

Messagebox.Show("统计完毕!")



 


[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:5975 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2008/11/12 12:37:00 [只看该作者]

ok,谢谢!!成功

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


加好友 发短信
等级:婴狐 帖子:9 积分:228 威望:0 精华:0 注册:2012/1/15 14:18:00
  发帖心情 Post By:2015/1/14 13:40:00 [只看该作者]

同一表中有不同期数,不同年级,不同班级的成绩,需要对同一期数,同一年级,同一班级排名,如何设计?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/14 14:14:00 [只看该作者]

以下是引用wlcycxy在2015-1-14 13:40:00的发言:
同一表中有不同期数,不同年级,不同班级的成绩,需要对同一期数,同一年级,同一班级排名,如何设计?

 

新开帖子,上传对应测试数据。


 回到顶部
总数 20 上一页 1 2