以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  排序问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1158)

--  作者:老有所乐
--  发布时间:2008/11/17 16:01:00
--  排序问题
求教表A[分数班级排名]和[语文班级排名]排序是分年级分班级排序,按钮代码,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目a3.table


--  作者:czy
--  发布时间:2008/11/17 16:42:00
--  
Tables("表A").Sort = "年级,班级,语文班级排名"
--  作者:老有所乐
--  发布时间:2008/11/17 16:50:00
--  
C版,好像不行。
--  作者:czy
--  发布时间:2008/11/17 17:10:00
--  
一次性对多个排名列进行排序估计不行吧。
--  作者:老有所乐
--  发布时间:2008/11/17 17:15:00
--  
多列不行,一列排序可以,但是排序后没有写入序号。我是要排序后,序号写入到该列
--  作者:czy
--  发布时间:2008/11/17 17:21:00
--  
序号写入哪个列中?
--  作者:老有所乐
--  发布时间:2008/11/17 17:36:00
--  
写入到表A中[分数班级排名]和[语文班级排名],见表A该两列手工编的排名
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目a3.table

[此贴子已经被作者于2008-11-17 17:38:36编辑过]

--  作者:czy
--  发布时间:2008/11/17 18:09:00
--  


Dim pm As List(Of String()) = CurrentTable.DataTable.GetUniqueValues("","年级","班级")
Dim pmc As Integer
Dim ColNames() As String = {"分数","语文"}
Dim TotalName As String
CurrentTable.Redraw = False
For Each ColName As string In ColNames
    For i As Integer = 0 To pm.Count -1
        If pm(i)(0) = "" Then
            Continue for
        End If
        Dim drs As List(Of DataRow) = Currenttable.DataTable.Select("[年级] = \'" & pm(i)(0) & "\'And [班级] = " & pm(i)(1), ColName & " DESC")
        pmc = 0
        TotalName = ColName & "班级排名"
        For n As integer = 0 To drs.Count - 1
            pmc = pmc +1
            If n > 0 AndAlso drs(n)(ColName ) = drs(n-1)(ColName) Then
                drs(n)(TotalName ) = drs(n-1)(TotalName )
            Else
                drs(n)(TotalName ) = pmc
            End If
        Next
    Next
Next

CurrentTable.Redraw = True

[此贴子已经被作者于2008-11-17 18:24:47编辑过]

--  作者:老有所乐
--  发布时间:2008/11/17 18:57:00
--  
谢谢C版主,这个达到目的