以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  怎么按1班的总分和2班的总分分别降序排序并得出名次(总分相同,名次一样)?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171201)

--  作者:xhydxs
--  发布时间:2021/8/21 17:47:00
--  怎么按1班的总分和2班的总分分别降序排序并得出名次(总分相同,名次一样)?

怎么按1班的总分和2班的总分分别降序排序并得出名次(总分相同,名次一样),谢谢?


图片点击可在新窗口打开查看此主题相关图片如下:0346.gif
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2021/8/22 20:09:00
--  
参考:http://www.foxtable.com/webhelp/topics/2382.htm
--  作者:xhydxs
--  发布时间:2021/8/23 12:34:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:02.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:01.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:03.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/8/23 13:33:00
--  
代码直接发文字,不要截图,方便别人改
--  作者:xhydxs
--  发布时间:2021/8/23 15:00:00
--  
Tables("成绩表").StopRedraw
Dim bjs As List(Of String) = DataTables("成绩表").GetValues("岗位代码","[岗位代码] Is Not NULL")
Dim Count As Integer
Dim ColNames() As String = {"笔试成绩","年度考核加分","教学成绩加分","现场赛课加分","总分"} 
Dim TotalName As String 
For Each ColName As String In ColNames \'
    For i As Integer = 0 To bjs.Count -1 
        Dim drs As List(Of DataRow) = DataTables("成绩表").Select("[岗位代码] = " & bjs(i), ColName & " DESC")
        Count = 0
        TotalName = ColName & "排名"
        For n As Integer = 0 To drs.Count - 1
            Count = Count + 1
            If n > 0 AndAlso drs(n)(ColName ) = drs(n-1)(ColName) Then
                drs(n)(TotalName ) = drs(n-1)(TotalName ) 
            Else
                drs(n)(TotalName ) = Count
            End If
        Next
    Next 
Next
Tables("成绩表").Sort = "总分 DESC"
Tables("成绩表").ResumeRedraw

--  作者:有点蓝
--  发布时间:2021/8/23 15:27:00
--  
岗位代码是字符列吧

Dim drs As List(Of DataRow) = DataTables("成绩表").Select("[岗位代码] =
\'" & bjs(i) & "\'", ColName & " DESC")
--  作者:xhydxs
--  发布时间:2021/8/23 16:24:00
--  
是的