Foxtable(狐表)用户栏目专家坐堂 → [求助]空值排名问题


  共有1936人关注过本帖树形打印复制链接

主题:[求助]空值排名问题

帅哥哟,离线,有人找我吗?
sunion
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2569 威望:0 精华:0 注册:2018/1/11 14:52:00
[求助]空值排名问题  发帖心情 Post By:2018/5/12 10:30:00 [只看该作者]

各位老师,有个疑问,比如成绩表中物理没有考试,即没有分数,下列代码生成排名时,还是有排名(全部都是1)
如果物理、化学没有考试,能不能不生成排名(即排名列为空)呢?


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


源代码如下:

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

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110455 积分:562147 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/12 11:01:00 [只看该作者]

只取有值的进行排名
Dim drs As List(Of DataRow) = DataTables("成绩表").Select("[年级] = " & bjs(i) & " and " & ColName & " is not null", ColName & " DESC")

 回到顶部