Foxtable(狐表)用户栏目专家坐堂 → 执行窗口命令后不能保存?


  共有3099人关注过本帖平板打印复制链接

主题:执行窗口命令后不能保存?

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


加好友 发短信
等级:幼狐 帖子:52 积分:537 威望:0 精华:0 注册:2016/3/24 11:13:00
执行窗口命令后不能保存?  发帖心情 Post By:2016/5/6 15:16:00 [只看该作者]

请问老师,以下程序是计算各科成绩在班级的名次和全校的名次、等级,能正常后执行,但保存后再打开结果没有了,是什么原因?

Tables("成绩总表").StopRedraw
Dim cs() As String ={"语文_高一","语文_高二","数学_高一","数学_高二","英语_高一","英语_高二","物理_高一","物理_高二","化学_高一","化学_高二","政治_高一","政治_高二","历史_高一","历史_高二","地理_高一","地理_高二","技术_高一","技术_高二","生物_高二","总分"}
Dim t As Table = Tables("成绩总表")
For Each c As String In cs
    If t.DataTable.DataCols.Contains(c & "_班名")=False Then
        t.DataTable.DataCols.Add(c & "_班名", Gettype(Integer))
        t.cols(c & "_班名").Move(t.cols(c).Index+1)
    End If
    If t.DataTable.DataCols.Contains(c & "_校名")=False Then
        t.DataTable.DataCols.Add(c & "_校名", Gettype(String))
        t.cols(c & "_校名").Move(t.cols(c).Index+2)
    End If
    If t.DataTable.DataCols.Contains(c & "_等级")=False Then
        t.DataTable.DataCols.Add(c & "_等级", Gettype(String))
        t.cols(c & "_等级").Move(t.cols(c).Index+3)
    End If
    t.cols(c).Caption = c & "_分数"
Next

Dim bjs As List(Of String) = DataTables("成绩总表").GetValues("班级","[班级] Is Not NULL")
Dim Count As Integer
Dim ColNames() As String ={"语文_高一","语文_高二","数学_高一","数学_高二","英语_高一","英语_高二","物理_高一","物理_高二","化学_高一","化学_高二","政治_高一","政治_高二","历史_高一","历史_高二","地理_高一","地理_高二","技术_高一","技术_高二","生物_高二","总分"}
Dim TotalName As String
Dim denji As String
For Each ColName As String In ColNames
    
    '以下设置学科成绩按全校排名和等级
    
    Dim drss As List(of DataRow)=DataTables("成绩总表").Select("", Colname & " DESC ")
    count=0
    TotalName = ColName & "_校名"
    denji=Colname & "_等级"
    For n As Integer = 0 To drss.Count - 1 '遍历所有行
        Count = Count + 1
        If n > 0 AndAlso drss(n)(Colname) = drss(n-1)(Colname) Then '如果总分和上一行相同
            drss(n)(Totalname) = drss(n-1)(Totalname) '则排名等于上一行
        Else
            drss(n)(Totalname) =count '设置排名
        End If
        If drss(n)(Totalname)<=drss.Count *0.15 Then
            drss(n)(denji)="A"
        ElseIf drss(n)(Totalname)<=drss.Count *0.45 Then
            drss(n)(denji)="B"
        ElseIf drss(n)(Totalname)<=drss.Count *0.75 Then
            drss(n)(denji)="C"
        ElseIf drss(n)(Totalname)<=drss.Count *0.95 Then
            drss(n)(denji)="D"
        Else
            drss(n)(denji)="E"
        End If
    Next
    
    '以下设置学科成绩按班级排名
    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
图片点击可在新窗口打开查看此主题相关图片如下:截图20160506150810.png
图片点击可在新窗口打开查看


 


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

 回到顶部
总数 27 1 2 3 下一页