Foxtable(狐表)用户栏目专家坐堂 → 如何写班级的排名公式


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

主题:如何写班级的排名公式

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


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

班级列列类型改成字符型。

   

 

e.Form.Controls("Label1").text="请稍等,正在计时..."

dim timestart,timeend as date

timestart=date.now

 

CurrentTable.Redraw = False '暂停刷新表

For Each c as Datacol in DataTables("学生各科成绩表").Datacols '遍历学生各科成绩表中的所有列

  if c.name = "语文" Or c.name = "数学" or c.name = "英语" or c.name = "化学" or c.name = "物理" or c.name = "总分" Then '如果等于这些列

    Dim pm As New List(Of String) '定义一个字符型的集合

    Dim pmc As Integer '定义一个数值型变量

    pm = CurrentTable.DataTable.GetUniqueValues("","班级") '从学生各科成绩表中提取不重复的班级保存到集合中

    For i As Integer = 0 To pm.Count -1  '遍历班级集合

        CurrentTable.Filter= "[班级] = '" & pm(i) & "'" ''筛选

        Currenttable.sort = c.name & " DESC" '按降序排序

        pmc = 0 '赋于变量初始值

        For n As integer = 0 to Currenttable.rows.Count -1 '遍历学生各科成绩表中的所有行

            pmc = pmc +1

            If n > 0 AndAlso Currenttable.rows(n)(c.name) = Currenttable.rows(n-1)(c.name) Then '如果不是第一行且计算行等于上一行的值

                CurrentTable.Rows(n)(c.name & "班级排名") = CurrentTable.Rows(n-1)(c.name & "班级排名") '就赋于上一行的值

            Else

                CurrentTable.Rows(n)(c.name & "班级排名") = pmc '当前计算行的行号加 1(变量pmc的步长值为1)

            End If

        Next

    Next

  End if

Next

CurrentTable.Filter = "" '取消筛选

CurrentTable.Redraw = True '刷新表

Tables("学生各科成绩表").Sort = "总分 DESC" '排序,对总分列以降序排序

timeend=date.now

e.Form.Controls("Label1").text="耗时" & (timeend-timestart).TotalSeconds & "秒"

Messagebox.Show("统计完毕!")

 

[此贴子已经被作者于2008-11-11 16:27:08编辑过]

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


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

以下是引用狐狸爸爸在2008-11-11 17:12:00的发言:
如果不改也可以:

CurrentTable.Filter= "[班级] = '" & pm(i) & "'" ''筛选

改为

CurrentTable.Filter= "[班级] = " & pm(i)



呵,忘了双精度小数现在也可以筛选了


 回到顶部