Foxtable(狐表)用户栏目专家坐堂 → 请教高手排列名次问题?


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

主题:请教高手排列名次问题?

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


加好友 发短信
等级:婴狐 帖子:32 积分:506 威望:0 精华:0 注册:2011/12/16 0:21:00
请教高手排列名次问题?  发帖心情 Post By:2012/12/2 1:04:00 [只看该作者]

已前是易表用户,刚接触狐表,请高手们指点一下。想实现按总成绩高低排名次,如果总成绩相同,则以专业成绩高低排名次,然后按照招聘岗位数的3倍标示“进入面试”人员,其中考试成绩为“-1”的为笔试缺考人员,不能标示为进入面试。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:成绩排名次.table


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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2012/12/2 11:17:00 [只看该作者]

我是不是可以理解为 按 报考职位代码,总成绩(降序),专业成绩(降序) 排序  ,然后按岗位数X3标示 ?

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


加好友 发短信
等级:婴狐 帖子:32 积分:506 威望:0 精华:0 注册:2011/12/16 0:21:00
  发帖心情 Post By:2012/12/2 11:32:00 [只看该作者]

楼上说的完全正确,按岗位数的1:3的比例来标示,不足1:3比例的全部要标示,特殊情况如果总成绩为“-1”,也就是缺考,则不标示。还有一种情况比较麻烦,比如岗位数为1个,按3倍应有3个人被标示,但如果第3名有n(n>=1)个人总成绩相同,那么应标示的就有2+n个人,即第1名(1个)、第2名(1个)、第3名(n个);如果第2名有n(n>=2)个人总成绩相同,那么应标示的是1+n个人,即第1名(1个)和第2名(n个)。


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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2012/12/2 12:09:00 [只看该作者]

Tables("成绩表").Sort= "报考职位代码,总成绩 DESC,专业成绩 DESC"
DataTables("成绩表").Save
Dim bjs As List(Of String) = DataTables("成绩表").GetUniqueValues("","报考职位代码")
For Each bj As String In bjs
    '获得该班级的全部行,按总分降序排序
    Dim drs As List(Of DataRow) = DataTables("成绩表").Select("[报考职位代码] = " & bj,"报考职位代码,总成绩 DESC,专业成绩 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
           If N=0 Then
             drs(n)("总成绩名次") = 1
            Else
            drs(n)("总成绩名次") = drs(n-1)("总成绩名次")+1   '设置排名
            End If
        End If

        If  drs(n)("总成绩名次")<  drs(n)("招聘岗位数")*3  And  drs(n)("专业成绩")>-1 And  drs(n)("公共成绩")>-1  Then
            drs(n)("面试标示")="进入面试"
        Else
            drs(n)("面试标示")=""
        End If
       
    Next
Next


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


加好友 发短信
等级:婴狐 帖子:32 积分:506 威望:0 精华:0 注册:2011/12/16 0:21:00
  发帖心情 Post By:2012/12/2 13:06:00 [只看该作者]

十分感谢楼上热情帮助,我也测试了一下,基本达到要求。下面这一句要改成“<=”才可以,要不然总少一个人。

If drs(n)("总成绩名次")< drs(n)("招聘岗位数")*3 And drs(n)("专业成绩")>-1 And drs(n)("公共成绩")>-1 Then
最后再次表示感谢!!


 回到顶部