Foxtable(狐表)用户栏目专家坐堂 → 求幅度时提示的错误。


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

主题:求幅度时提示的错误。

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


加好友 发短信
等级:小狐 帖子:382 积分:3007 威望:0 精华:0 注册:2012/8/30 16:09:00
求幅度时提示的错误。  发帖心情 Post By:2016/8/29 11:05:00 [只看该作者]

在分析“排名进退幅度”时,提示如图的错误,如何解决呢?谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:成绩管理平台.zip


图片点击可在新窗口打开查看此主题相关图片如下:进幅.jpg
图片点击可在新窗口打开查看


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


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

If e.DataRow.IsNull("科目")=False Then
    Select Case e.DataCol.name
        Case "届别","考试期数","年级","班别","科目"
            Dim dr As DataRow=e.DataRow
            Dim dt_StudentScore As DataTable=DataTables("StudentScore")
            Dim dt_pmsj As DataTable=DataTables("排名升降")
            Dim gjf As String=dt_pmsj.Compute("Max(" & dr("科目") & ")","[届别]='" & e.DataRow("届别") & "' And [考试期数] ='" & dr("考试期数") & "' And [年级]='" & dr("年级") & "' And [班别]='" & dr("班别") & "'")
            Dim djf As String=dt_pmsj.Compute("Min(" & dr("科目") & ")","[届别]='" & e.DataRow("届别") & "' And [考试期数] ='" & dr("考试期数") & "' And [年级]='" & dr("年级") & "' And [班别]='" & dr("班别") & "'")
            If gjf > "" AndAlso djf > "" Then
                e.DataRow("高幅度")=gjf.SubString(1,gjf.IndexOf("(")-1)
                e.DataRow("低幅度")=djf.SubString(1,djf.IndexOf("(")-1)
            End If
    End Select
End If

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


加好友 发短信
等级:小狐 帖子:382 积分:3007 威望:0 精华:0 注册:2012/8/30 16:09:00
  发帖心情 Post By:2016/8/29 12:44:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:幅度.jpg
图片点击可在新窗口打开查看

最低进幅的分数与排名升降时的箭头所示的下降名次不对,谢谢!
这是代码:
If e.DataRow.IsNull("科目")=False Then
    Select Case e.DataCol.name
        Case "届别","考试期数","年级","班别","科目"
            Dim dr As DataRow=e.DataRow
            Dim dt_StudentScore As DataTable=DataTables("StudentScore")
            Dim dt_pmsj As DataTable=DataTables("排名升降")
            Dim gjf As String=dt_pmsj.Compute("Max(" & dr("科目") & ")","[届别]='" & e.DataRow("届别") & "' And [考试期数] ='" & dr("考试期数") & "' And [年级]='" & dr("年级") & "' And [班别]='" & dr("班别") & "'")
            Dim djf As String=dt_pmsj.Compute("Min(" & dr("科目") & ")","[届别]='" & e.DataRow("届别") & "' And [考试期数] ='" & dr("考试期数") & "' And [年级]='" & dr("年级") & "' And [班别]='" & dr("班别") & "'")
            If gjf > "" AndAlso djf > "" Then
                e.DataRow("高幅度")=gjf.SubString(1,gjf.IndexOf("(")-1)
                e.DataRow("低幅度")=djf.SubString(1,djf.IndexOf("(")-1)
                e.DataRow("高幅分")=dt_StudentScore.Compute("Max(" & dr("科目") & ")","[届别]='" & e.DataRow("届别") & "' And [考试期数]='" & e.DataRow("考试期数") & "' And [年级]='" & dr("年级") & "' And [班别]='" & dr("班别") & "'")
                e.DataRow("低幅分")=dt_StudentScore.Compute("Min(" & dr("科目") & ")","[届别]='" & e.DataRow("届别") & "' And [考试期数]='" & e.DataRow("考试期数") & "' And [年级]='" & dr("年级") & "' And [班别]='" & dr("班别") & "'")
                
            End If
    End Select
End If
[此贴子已经被作者于2016/8/29 12:46:20编辑过]

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


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

If e.DataRow.IsNull("科目")=False Then
    Select Case e.DataCol.name
        Case "届别","考试期数","年级","班别","科目"
            Dim dr As DataRow=e.DataRow
            Dim dt_StudentScore As DataTable=DataTables("StudentScore")
            Dim dt_pmsj As DataTable=DataTables("排名升降")
            Dim filter As String = "[届别]='" & e.DataRow("届别") & "' And [考试期数] ='" & dr("考试期数") & "' And [年级]='" & dr("年级") & "' And [班别]='" & dr("班别") & "' and " & dr("科目") & " like '↑%'"
            Dim dmax As DataRow = dt_pmsj.Find(filter, dr("科目") & " desc")
            Dim dmin As DataRow = dt_pmsj.Find(filter, dr("科目"))
           
            If dmax IsNot Nothing Then
                e.DataRow("高幅度")=dmax(dr("科目")).SubString(1,dmax(dr("科目")).IndexOf("(")-1)
                e.DataRow("低幅度")=dmin(dr("科目")).SubString(1,dmin(dr("科目")).IndexOf("(")-1)
                e.DataRow("高幅分")=dt_StudentScore.Compute("Max(" & dr("科目") & ")","[届别]='" & e.DataRow("届别") & "' And [考试期数]='" & e.DataRow("考试期数") & "' And [年级]='" & dr("年级") & "' And [班别]='" & dr("班别") & "' and 姓名 = '" & dmax("姓名") & "'")
                e.DataRow("低幅分")=dt_StudentScore.Compute("Min(" & dr("科目") & ")","[届别]='" & e.DataRow("届别") & "' And [考试期数]='" & e.DataRow("考试期数") & "' And [年级]='" & dr("年级") & "' And [班别]='" & dr("班别") & "' and 姓名 = '" & dmin("姓名") & "'")
                e.DataRow("高姓名") = dmax("姓名")
                e.DataRow("低姓名") = dmin("姓名")
            End If
    End Select
End If

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


加好友 发短信
等级:小狐 帖子:382 积分:3007 威望:0 精华:0 注册:2012/8/30 16:09:00
  发帖心情 Post By:2016/8/29 17:17:00 [只看该作者]

谢谢!

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


加好友 发短信
等级:小狐 帖子:382 积分:3007 威望:0 精华:0 注册:2012/8/30 16:09:00
  发帖心情 Post By:2016/8/30 16:45:00 [只看该作者]

但是此处的Dim filter As String = "[届别]='" & e.DataRow("届别") & "' And [考试期数] ='" & dr("考试期数") & "' And [年级]='" & dr("年级") & "' And [班别]='" & dr("班别") & "' and " & dr("科目") & " like '↑%'"有问题,比如一个是↑9,另一个是↑30.它获取的是↑9的值,即9,跟在“排名升降”中的显示的意思不一致。应该是要比较↑后面的数值大小,谢谢!
[此贴子已经被作者于2016/8/30 16:46:35编辑过]

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/30 17:12:00 [只看该作者]

字符的比较就是这样的。要么不要在科目中放其它字符,增加一列放“”,科目改成整型

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


加好友 发短信
等级:小狐 帖子:382 积分:3007 威望:0 精华:0 注册:2012/8/30 16:09:00
  发帖心情 Post By:2016/8/30 17:19:00 [只看该作者]

那能把字符型的数值转换成整型的数值吗?谢谢!

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


加好友 发短信
等级:小狐 帖子:382 积分:3007 威望:0 精华:0 注册:2012/8/30 16:09:00
  发帖心情 Post By:2016/8/30 17:28:00 [只看该作者]

那就要排名升降表中作比较是不要字符了,直接用整型数值了

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/30 17:37:00 [只看该作者]

回复8楼,排序的时候没有办法转换类型

 回到顶部
总数 18 1 2 下一页