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


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

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

帅哥哟,离线,有人找我吗?
大红袍
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/10 16:15:00 [只看该作者]

参考代码

 

Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each dr1 As DataRow In DataTables("表A").Select("")   
    Dim dr2 As DataRow = DataTables("表B").find("姓名 = '" & dr1("姓名") & "'")
    If dr2 Is Nothing Then
        dr2 = DataTables("表B").AddNew()
    End If
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next


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


加好友 发短信
等级:幼狐 帖子:52 积分:537 威望:0 精华:0 注册:2016/3/24 11:13:00
  发帖心情 Post By:2016/5/12 10:20:00 [只看该作者]

谢谢大红袍老师!

 

我现在把成绩表转换成了竖表“成绩总表竖表”,希望统计出各学科的全校名次和等级。

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

 

我知道下面的代码有些问题,那正确的应该怎么写,要用SQl吗

Tables("成绩总表竖表").StopRedraw
Dim Count As Integer
Dim kms As List(of String) = DataTables("成绩总表竖表").GetValues("科目")
For Each km As String In kms
    '以下设置学科成绩按全校排名和等级
    Dim drss As List(of DataRow)=DataTables("成绩总表竖表").Select("[科目]= " & km, km & " DESC ")
    count=0
    For n As Integer = 0 To drss.Count - 1 '遍历所有行
        Count = Count + 1
        If n > 0 AndAlso drss(n)(km) = drss(n-1)(km) Then '如果总分和上一行相同
            drss(n)("全校名次") = drss(n-1)("全校名次") '则排名等于上一行
        Else
            drss(n)("全校名次") =count '设置排名
        End If
        If drss(n)("全校名次")<=drss.Count *0.15 Then
            drss(n)("等级")="A"
        ElseIf drss(n)("全校名次")<=drss.Count *0.45 Then
            drss(n)("等级")="B"
        ElseIf drss(n)("全校名次")<=drss.Count *0.75 Then
            drss(n)("等级")="C"
        ElseIf drss(n)("全校名次")<=drss.Count *0.95 Then
            drss(n)("等级")="D"
        Else
            drss(n)("等级")="E"
        End If
    Next
Next
Tables("成绩总表竖表").ResumeRedraw

 

 


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


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/12 10:22:00 [只看该作者]

 Dim drss As List(of DataRow)=DataTables("成绩总表竖表").Select("[科目]= " & km, km & " DESC ")

 

改成

 

  Dim drss As List(of DataRow)=DataTables("成绩总表竖表").Select("[科目]= '" & km & "'", km & " DESC ")

 

-------------如果还报错,做个实例发上来看看


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


加好友 发短信
等级:幼狐 帖子:52 积分:537 威望:0 精华:0 注册:2016/3/24 11:13:00
  发帖心情 Post By:2016/5/12 10:42:00 [只看该作者]

还是同样提示“找不到列 高二_地理”

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:成绩总表竖表.rar


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/12 10:52:00 [只看该作者]

Tables("成绩总表竖表").ResumeRedraw
Tables("成绩总表竖表").StopRedraw
Dim Count As Integer
Dim kms As List(of String) = DataTables("成绩总表竖表").GetValues("科目")
For Each km As String In kms
    '以下设置学科成绩按全校排名和等级
    Dim drss As List(of DataRow)=DataTables("成绩总表竖表").Select("[科目]='" & km & "'", "分数 DESC ")
    count=0
    For n As Integer = 0 To drss.Count - 1 '遍历所有行
        Count = Count + 1
        If n > 0 AndAlso drss(n)("分数") = drss(n-1)("分数") Then '如果总分和上一行相同
            drss(n)("全校名次") = drss(n-1)("全校名次") '则排名等于上一行
        Else
            drss(n)("全校名次") =count '设置排名
        End If
        If drss(n)("全校名次")<=drss.Count *0.15 Then
            drss(n)("等级")="A"
        ElseIf drss(n)("全校名次")<=drss.Count *0.45 Then
            drss(n)("等级")="B"
        ElseIf drss(n)("全校名次")<=drss.Count *0.75 Then
            drss(n)("等级")="C"
        ElseIf drss(n)("全校名次")<=drss.Count *0.95 Then
            drss(n)("等级")="D"
        Else
            drss(n)("等级")="E"
        End If
    Next
Next
Tables("成绩总表竖表").ResumeRedraw

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


加好友 发短信
等级:幼狐 帖子:52 积分:537 威望:0 精华:0 注册:2016/3/24 11:13:00
  发帖心情 Post By:2016/5/12 16:09:00 [只看该作者]

嗯,谢谢,这个全校排名没问题了,是我把“分数”从高到低排序变成了“班级”了。

 

另外,如果统计各学科在各班级中的名次,我加了一段代码,主要是同时选择[班级]=bjs(i) And [科目]=km 这个用select语句写不清楚

下面两种都不对?

Select("[班级] ='" & bjs(i) & "'"  And "[科目]='" & km & "'", "分数 DESC")

Select("[班级] =" & bjs(i)  And "[科目]='" & km & "'", "分数 DESC")

Tables("成绩总表竖表").StopRedraw
Dim Count As Integer
Dim bjs As List(of String)=DataTables("成绩总表竖表").getvalues("班级","[班级] is not null")
Dim kms As List(of String) = DataTables("成绩总表竖表").GetValues("科目")
For Each km As String In kms
    '以下设置学科成绩按全校排名和等级
    Dim drss As List(of DataRow)=DataTables("成绩总表竖表").Select("[科目]='" & km & "'", "分数 DESC ")
    count=0
    For n As Integer = 0 To drss.Count - 1 '遍历所有行
        Count = Count + 1
        If n > 0 AndAlso drss(n)("分数") = drss(n-1)("分数") Then '如果总分和上一行相同
            drss(n)("全校名次") = drss(n-1)("全校名次") '则排名等于上一行
        Else
            drss(n)("全校名次") =count '设置排名
        End If
        If drss(n)("全校名次")<=drss.Count *0.15 Then
            drss(n)("等级")="A"
        ElseIf drss(n)("全校名次")<=drss.Count *0.45 Then
            drss(n)("等级")="B"
        ElseIf drss(n)("全校名次")<=drss.Count *0.75 Then
            drss(n)("等级")="C"
        ElseIf drss(n)("全校名次")<=drss.Count *0.95 Then
            drss(n)("等级")="D"
        Else
            drss(n)("等级")="E"
        End If
    Next

'下面计算各科班级名次
    For i As Integer = 0 To bjs.Count -1
        Dim drs As List(Of DataRow) = DataTables("成绩总表竖表").Select("[班级] =" & bjs(i)  And "[科目]='" & km & "'", "分数 DESC")
        Count = 0
        For n As Integer = 0 To drs.Count - 1
            Count = Count + 1
            If n > 0 AndAlso drs(n)("分数") = drs(n-1)("分数") Then
                drs(n)("班级名次") = drs(n-1)("班级名次")
            Else
                drs(n)("班级名次") = Count
            End If
        Next
    Next

Next
Tables("成绩总表竖表").ResumeRedraw


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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/12 16:24:00 [只看该作者]

改成

 

        Dim drs As List(Of DataRow) = DataTables("成绩总表竖表").Select("[班级] ='" & bjs(i) & "' And [科目]='" & km & "'", "分数 DESC")


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