Foxtable(狐表)用户栏目专家坐堂 → 按考生类别排名没有显示


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

主题:按考生类别排名没有显示

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/10/9 21:24:00 [显示全部帖子]

成绩排名表,总分列表达式:

 

iif([考生类别] = '文科',IsNull([语文],0) + IsNull([数学],0) + IsNull([英语],0) + IsNull([政治],0) + IsNull([地理],0) + IsNull([历史],0) ,
IsNull([语文],0) + IsNull([数学],0) + IsNull([英语],0) + IsNull([政治],0) + IsNull([地理],0) + IsNull([历史],0) + IsNull([物理],0) + IsNull([化学],0) + IsNull([生物],0))

 

按期数排名按钮代码前一段改成:

 

e.Form.Controls("Label1").text="排名中,请稍候..."
Dim Time,Time1 As Date
Time = Date.now
Application.Doevents
DataTables("成绩排名").DataRows.Clear()
Dim f As New Filler
f.SourceTable = DataTables("成绩表")
f.DataTable = DataTables("成绩排名")
f.ExcludeExistValue = True
f.Filter = "期数 is not null"
f.Fill

 

……


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/10/10 20:13:00 [显示全部帖子]

这个没必要改吧?

真要改是这样定义的:

 

Dim pm As List(Of String()) = CurrentTable.DataTable.GetUniqueValues( "","期数","班级")

 

不过这样发动后整个代码差不多要全部改动了。


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/10/10 21:51:00 [显示全部帖子]

e.Form.Controls("Label1").text="排名中,请稍候..."
Dim Time,Time1 As Date
Time = Date.now
Application.Doevents
DataTables("成绩排名").DataRows.Clear()
Dim f As New Filler
f.SourceTable = DataTables("成绩表")
f.DataTable = DataTables("成绩排名")
f.ExcludeExistValue = True
f.Filter = "期数 is not null"
f.Fill

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
Tables("成绩排名").Sort = "期数,班级,总分排名"
Time1 = Date.Now
e.Form.Controls("Label1").text="耗时 " & (Time1-Time).TotalSeconds & " 秒"

 

 

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=5&Id=1685&page=6

 

 


 回到顶部