Foxtable(狐表)用户栏目专家坐堂 → 排名次问题


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

主题:排名次问题

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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
排名次问题  发帖心情 Post By:2013/10/28 13:05:00 [只看该作者]

需要达到的效果:
   1、录入比赛成绩后,点击“取前八名”按钮后,'成绩'列将自动按时间长短排序,时间短的排前面,时间长的排后面。
   2、'名次'列将自动取前八名。给出 1、2、3、4、5、6、7、8 数字。
   3、第八名以后的行,即第九行(含第九行)以后的行全部过滤不可见。
请问“按键”代码如何写?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:排名次.rar


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


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

呵呵,好短的代码啊:

 

Dim dr As DataRow = DataTables("表A").Find("","成绩",8)
Tables("表A").Filter = "成绩 < '" & dr("成绩") & "'"

图片点击可在新窗口打开查看


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


加好友 发短信
等级:一尾狐 帖子:431 积分:3214 威望:0 精华:2 注册:2011/9/10 21:35:00
  发帖心情 Post By:2013/10/28 13:22:00 [只看该作者]

以下是引用狐狸爸爸在2013-10-28 13:11:00的发言:

呵呵,好短的代码啊:

 

Dim dr As DataRow = DataTables("表A").Find("","成绩",8)
Tables("表A").Filter = "成绩 < '" & dr("成绩") & "'"

图片点击可在新窗口打开查看

可是哪来的“8”?


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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2013/10/28 13:33:00 [只看该作者]

狐爸:测试发现名次:1、2、3、4、5、6、7、8 数字没有自动生成,请帮忙完善。谢谢了!

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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2013/10/28 13:37:00 [只看该作者]

如果名次相同,还要考虑名次并列问题,如二个第三名,就没有第四名。

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


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

Dim dr As DataRow = DataTables("表A").Find("","成绩",8)
Tables("表A").Filter = "成绩 < '" & dr("成绩") & "'"
Tables("表A").Sort = "成绩"

For i As integer = 0 To Tables(“表A”).Rows.Count - 1

   Tables(“表A”).Rows(i)("名次") = i + 1

Next


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


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


Dim mc As Integer=1
For i As Integer=0 To Tables("表A").Rows.count-1
    If i>0 AndAlso Tables("表A").Rows(i)("成绩") <> Tables("表A").Rows(i-1)("成绩") Then
        mc=mc+1
    End If
    If mc>8 Then
        Exit For
    End If
    Tables("表A").Rows(i)("名次")=mc
Next

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/10/28 15:17:00 [只看该作者]

楼主的排名条件,不公平啦:

三个第八名,怎么取舍?


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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2013/10/28 16:22:00 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2013/10/28 16:32:00 [只看该作者]

现在比赛是这样规定的:如果名次相同,就并列,如二个第三名,就没有第四名。 经测试并列问题还没有解决,请狐爸和Bib老师帮忙解决。谢谢了!

 回到顶部
总数 16 1 2 下一页