以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求幅度时提示的错误。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89750) |
||||
-- 作者:地瓜 -- 发布时间:2016/8/29 11:05:00 -- 求幅度时提示的错误。 在分析“排名进退幅度”时,提示如图的错误,如何解决呢?谢谢!
|
||||
-- 作者:大红袍 -- 发布时间: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 |
||||
-- 作者:地瓜 -- 发布时间: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编辑过]
|
||||
-- 作者:大红袍 -- 发布时间: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 |
||||
-- 作者:地瓜 -- 发布时间:2016/8/29 17:17:00 -- 谢谢! |
||||
-- 作者:地瓜 -- 发布时间: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 -- 发布时间:2016/8/30 17:12:00 -- 字符的比较就是这样的。要么不要在科目中放其它字符,增加一列放“↑”,科目改成整型 |
||||
-- 作者:地瓜 -- 发布时间:2016/8/30 17:19:00 -- 那能把字符型的数值转换成整型的数值吗?谢谢! |
||||
-- 作者:地瓜 -- 发布时间:2016/8/30 17:28:00 -- 那就要排名升降表中作比较是不要字符了,直接用整型数值了 |
||||
-- 作者:Hyphen -- 发布时间:2016/8/30 17:37:00 -- 回复8楼,排序的时候没有办法转换类型 |