以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 排名次问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=41815) |
||||
-- 作者:aygp -- 发布时间:2013/10/28 13:05:00 -- 排名次问题 需要达到的效果: 1、录入比赛成绩后,点击“取前八名”按钮后,\'成绩\'列将自动按时间长短排序,时间短的排前面,时间长的排后面。 2、\'名次\'列将自动取前八名。给出 1、2、3、4、5、6、7、8 数字。 3、第八名以后的行,即第九行(含第九行)以后的行全部过滤不可见。 请问“按键”代码如何写?
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/10/28 13:11:00 -- 呵呵,好短的代码啊:
Dim dr As DataRow = DataTables("表A").Find("","成绩",8) |
||||
-- 作者:yan2006l -- 发布时间:2013/10/28 13:22:00 -- 以下是引用狐狸爸爸在2013-10-28 13:11:00的发言:
呵呵,好短的代码啊:
Dim dr As DataRow = DataTables("表A").Find("","成绩",8) 可是哪来的“8”? |
||||
-- 作者:aygp -- 发布时间:2013/10/28 13:33:00 -- 狐爸:测试发现名次:1、2、3、4、5、6、7、8 数字没有自动生成,请帮忙完善。谢谢了! |
||||
-- 作者:aygp -- 发布时间:2013/10/28 13:37:00 -- 如果名次相同,还要考虑名次并列问题,如二个第三名,就没有第四名。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/10/28 14:13:00 -- Dim dr As DataRow = DataTables("表A").Find("","成绩",8) For i As integer = 0 To Tables(“表A”).Rows.Count - 1 Tables(“表A”).Rows(i)("名次") = i + 1 Next |
||||
-- 作者:Bin -- 发布时间: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 -- 发布时间:2013/10/28 15:17:00 -- 楼主的排名条件,不公平啦: 三个第八名,怎么取舍? |
||||
-- 作者:aygp -- 发布时间:2013/10/28 16:22:00 -- |
||||
-- 作者:aygp -- 发布时间:2013/10/28 16:32:00 -- 现在比赛是这样规定的:如果名次相同,就并列,如二个第三名,就没有第四名。 经测试并列问题还没有解决,请狐爸和Bib老师帮忙解决。谢谢了! |