以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  按考生类别排名没有显示  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24289)

--  作者:地瓜
--  发布时间:2012/10/9 21:08:00
--  按考生类别排名没有显示

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:教学信息管理系统.table

小弟不才,将原来的“教学信息学管理系统”打算按考生类别来统计排名,可是没有显示。考生类别有 “文科”,“理科”,这是问题之一。

其二,“总分”列是根据”考生类别“来统计的,如”文科“的总分=语文+数学+英语+政治+历史+地理,在排名表中如何体现出来?谢谢!


--  作者:czy
--  发布时间: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

 

……


--  作者:地瓜
--  发布时间:2012/10/10 20:02:00
--  

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:学校人事管理系统.table


此主题相关图片如下:错误提示.jpg
按此在新窗口浏览图片

 

czy老师,我设计的系统又有问题了,在成绩排名表中当单击“按期数和班级排名”时没有显示排名,主要是里面有一句代码:Dim pm As List(Of String) = CurrentTable.DataTable.GetUniqueValues( "","期数")如果改为:Dim pm As List(Of String) = CurrentTable.DataTable.GetUniqueValues( "","期数","班级")时会出现如图的错误,请赐教,谢谢!


 


--  作者:czy
--  发布时间:2012/10/10 20:13:00
--  

这个没必要改吧?

真要改是这样定义的:

 

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

 

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


--  作者:地瓜
--  发布时间:2012/10/10 20:15:00
--  

可是如果不改的话,单击“按期数和班级排名”按钮是没有排名显示了,谢谢!


--  作者:czy
--  发布时间: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

 

 


--  作者:地瓜
--  发布时间:2012/10/10 22:14:00
--  

谢谢!


--  作者:地瓜
--  发布时间:2012/10/11 9:15:00
--  
czy老师,我又来了图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学校人事管理系统.table


图片点击可在新窗口打开查看此主题相关图片如下:错误提示1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:错误提示2.jpg
图片点击可在新窗口打开查看
在“排名升降分析”中,当单击“排名分析”按钮时,“考生类别”列没有显示出来,同时设计本意是根据“考生类别”来进行排名升降分析的(即:文科生的物理、化学、生物列应该没有数据显示的)。第二、当鼠标单击“查询文本框”时,提示如图的错误,是不是我的代码设计错了?谢谢赐教!图片点击可在新窗口打开查看
--  作者:lin_hailun
--  发布时间:2012/10/11 10:33:00
--  
修改了一下,只是加一些东西,没有碰具体逻辑。代码写得较乱,楼主有空整理一下。

第二个问题是,Table控件的 副本属性 没有设置为True。

http://www.foxtable.com/help/topics/1906.htm

 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学校人事管理系统.table


[此贴子已经被作者于2012-10-11 10:33:25编辑过]

--  作者:地瓜
--  发布时间:2012/10/11 11:09:00
--  
lin_hailun说得是,我怎么没想到呢?谢谢!图片点击可在新窗口打开查看