以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请问下这里那里有问题哦,谢谢  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=101941)

--  作者:yangjing
--  发布时间:2017/6/10 11:32:00
--  请问下这里那里有问题哦,谢谢
If e.Row("年级") = "高一" Then
   Select Case e.DataCol.Name
    Case "引体向上值"
       e.DataRow("引体向上差值") = e.DataRow("引体向上值") -16
    End Select
ElseIf e.Row("年级") = "高二"Then
    Select Case e.DataCol.Name
    Case "引体向上值"
       e.DataRow("引体向上差值") = e.DataRow("引体向上值") -17
    End Select
ElseIf e.Row("年级") = "高三" Then
    Select Case e.DataCol.Name
    Case "引体向上值"
       e.DataRow("引体向上差值") = e.DataRow("引体向上值") -18
    End Select
Else 
   MessageBox.show("未选择对应年级,请重新输入!")
End If

--  作者:yangjing
--  发布时间:2017/6/10 11:34:00
--  

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

--  作者:有点蓝
--  发布时间:2017/6/10 11:44:00
--  
e.Row全部改为e.DataRow,不同事件的e参数是不一样的,不要混用:http://www.foxtable.com/webhelp/scr/0604.htm

另外代码这样可能更合理一点
Select Case e.DataCol.Name
    Case "引体向上值","年级"
        If e.DataRow.Isnull("引体向上值") OrElse e.DataRow.Isnull("年级") Then
            e.DataRow("引体向上差值") = Nothing
        Else
            Dim v As Integer = 0
            If e.DataRow("年级") = "高一" Then
                v = 16
            ElseIf e.DataRow("年级") = "高二"Then
                v = 17
            ElseIf e.DataRow("年级") = "高三" Then
                v = 18
            Else
                MessageBox.show("未选择对应年级,请重新输入!")
                Return
            End If
            e.DataRow("引体向上差值") = e.DataRow("引体向上值") - v
        End If
End Select

--  作者:yangjing
--  发布时间:2017/6/10 12:04:00
--  
谢谢您的解答,受教了,谢谢谢谢