Foxtable(狐表)用户栏目专家坐堂 → [求助]如何进行多层次排名?


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

主题:[求助]如何进行多层次排名?

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8846 威望:0 精华:0 注册:2012/7/10 9:09:00
[求助]如何进行多层次排名?  发帖心情 Post By:2013/11/11 9:08:00 [只看该作者]

如下图:
此主题相关图片如下:面试排名.png
按此在新窗口浏览图片
1、相同职位代码的总成绩,进行面试排名;

2、如果总成绩相同,则看相同职位下的笔试成绩,笔试成绩大的排名在前;

3、如果笔试成绩也相同,则看相同职位代码下的行测成绩,行测成绩大的排名在前,如果行测成绩也相同,则排名相同

下边代码如何修改:

'获得所有职位代码,保存在集合中

Dim bjs As List(Of String) = Tables("面试成绩_笔试").DataTable.GetUniqueValues("","职位代码")

For Each bj As String In bjs

    '获得该职位代码的全部行,按总分降序排序

    Dim drs As List(Of DataRow) = Tables("面试成绩_笔试").DataTable.Select("[职位代码] = " & bj, "总成绩 DESC")

    For n As Integer = 0 To drs.Count - 1 '遍历所有行

        If n > 0 AndAlso drs(n)("总成绩") = drs(n-1)("总成绩") Then '如果总分和上一行相同

            drs(n)("面试排名") = drs(n-1)("面试排名") '则排名等于上一行

        Else

            drs(n)("面试排名") = n + 1 '设置排名

        End If

    Next

Next


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/11 9:42:00 [只看该作者]

CurrentTable.Filter=""
CurrentTable.Sort="第一列,第三列"

Dim bjs As List(Of String) = Tables("面试成绩_笔试").DataTable.GetUniqueValues("","职位代码")
For Each bj As String In bjs
    '获得该职位代码的全部行,按总分降序排序
    Dim drs As List(Of DataRow) = Tables("面试成绩_笔试").DataTable.Select("[职位代码] = " & bj, "总成绩 DESC")
    For n As Integer = 0 To drs.Count - 1 '遍历所有行
        If n > 0 AndAlso drs(n)("总成绩") = drs(n-1)("总成绩") Then '如果总分和上一行相同
            If drs(n)("笔试成绩") = drs(n-1)("笔试成绩") Then
                If drs(n)("行测成绩") = drs(n-1)("行测成绩") Then
                    drs(n)("面试排名") = drs(n-1)("面试排名") '则排名等于上一行
                Else If drs(n)("行测成绩") > drs(n-1)("行测成绩") Then
                    drs(n)("面试排名")=n+2
                    drs(n-1)("面试排名") = n + 1
                Else
                    drs(n)("面试排名") = n + 1 '设置排名
                End If
            Else If drs(n)("笔试成绩") > drs(n-1)("笔试成绩") Then
                drs(n)("面试排名")=n+2
                drs(n-1)("面试排名") = n + 1
            Else
                drs(n)("面试排名") = n + 1 '设置排名
            End If
        Else
            drs(n)("面试排名") = n + 1 '设置排名
        End If
    Next
Next

大概是这样,没有例子没办法测试,不能保证正确性.

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8846 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2013/11/11 9:56:00 [只看该作者]

谢谢,我试着做一下,

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/11 9:58:00 [只看该作者]

CurrentTable.Filter=""
CurrentTable.Sort="第一列,第三列"

第一第二行代码是误发,自行去掉.

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8846 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2013/11/11 9:58:00 [只看该作者]

CurrentTable.Filter=""
CurrentTable.Sort="第一列,第三列"
这段代码是什么意思,需要将第一列、第三列改为标题名吗

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/11 9:58:00 [只看该作者]

CurrentTable.Filter=""
CurrentTable.Sort="第一列,第三列"

第一第二行代码是误发,自行去掉.

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8846 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2013/11/11 10:01:00 [只看该作者]

谢谢

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8846 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2013/11/11 10:53:00 [只看该作者]

我也弄不好了,把系统发给你,请你帮忙解决一下,谢谢
软件如下:代码在面试成绩窗口中的排名按键中
如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:公员面试登分系统_201311081238.rar


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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8846 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2013/11/11 11:24:00 [只看该作者]

可以解决吗,BIN

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/11 11:56:00 [只看该作者]

.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:面试登分系统.table


 回到顶部
总数 41 1 2 3 4 5 下一页