以文本方式查看主题

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

--  作者:wlcycxy
--  发布时间:2016/12/28 16:28:00
--  成绩排名问题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1111.table

为什么附件中对成绩排名时如果科目(或班级、年级)出现中文就出错,用数字就可以?
--  作者:有点色
--  发布时间:2016/12/28 17:03:00
--  

字符列,要加上单引号\'的。

 

e.Form.Controls("Label1").text="请稍等,正在排名..."
Dim pmb As List(Of String) = CurrentTable.DataTable.GetValues("班级排名")
Dim pmd As List(Of String) = CurrentTable.DataTable.GetValues("年级排名")
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 pmb.Count -1
        If pmb(i) = "" Then
            Continue For
        End If
        Dim drs As List(Of DataRow) = CurrentTable.DataTable.Select("[班级排名] = \'" & pmb(i) & "\'", ColName & " DESC")
        pmc = 0
       \' TotalName = ColName.SubString(0) & "_班名次"
        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)("总分排名" ) = drs(n-1)("总分排名" )
            Else
                drs(n)("总分排名" ) = pmc
            End If
        Next
    Next
    For i As Integer = 0 To pmd.Count -1
        If pmd(i) = "" Then
            Continue For
        End If
        Dim drs As List(Of DataRow) = CurrentTable.DataTable.Select("[年级排名] = \'" & pmd(i) & "\'", ColName & " DESC")
        pmc = 0
      \'  TotalName = ColName.SubString(0) & "_段名次"
        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)("级段名次" ) = drs(n-1)("级段名次")
            Else
                drs(n)("级段名次" ) = pmc
            End If
        Next
    Next
Next
CurrentTable.Redraw = True \'刷新表
e.Form.Controls("Label1").text="排名结束,你还在吗?"