以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 成绩排名 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=126627) |
-- 作者:lfz123 -- 发布时间:2018/10/25 15:02:00 -- 成绩排名 成绩排名的代码如下: If MainTable.name = "排名" Then Dim bjs As List(Of String) = DataTables("排名").GetValues("班级") \'获得所有班级名称,保存在集合中 For Each bj As String In bjs \'获得该班级的全部行,按语文_分数降序排序 Dim drs As List(Of DataRow) = DataTables("排名").Select("[班级] = " & bj, "语文_分数 DESC") MessageBox.Show(1) 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 End If
[此贴子已经被作者于2018/10/25 15:07:28编辑过]
|
-- 作者:有点蓝 -- 发布时间:2018/10/25 15:26:00 -- Dim drs As List(Of DataRow) = DataTables("排名").Select("[班级] = \'" & bj & "\'", "语文_分数 DESC") |
-- 作者:lfz123 -- 发布时间:2018/10/25 16:30:00 -- 成绩排名结果有错误 排名不是想要的结果 代码如下: If MainTable.name = "排名" Then \'语文成绩排名 Dim bjs As List(Of String) = DataTables("排名").GetValues("班级") \'获得所有班级名称,保存在集合中 For Each bj As String In bjs \'获得该班级的全部行,按语文_分数降序排序 Dim drs As List(Of DataRow) = DataTables("排名").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 End If |
-- 作者:有点蓝 -- 发布时间:2018/10/25 16:37:00 -- Dim idx As Integer = 1 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)("语文_排名") = idx \'设置排名 idx = idx+1 End If Next
|