以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  表事件命令求精简  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=72169)

--  作者:bestorange
--  发布时间:2015/7/24 16:36:00
--  表事件命令求精简

If e.DataCol.Name = "乐理程度" Then
    If e.NewValue Is Nothing Then
        e.DataRow("乐理费") = Nothing
    Else
        Dim dr3  As  DataRow
        dr3 =  DataTables("课类分类表").Find("科目 = \'" & e.DataRow("乐理程度") & "\'")
        If dr3 IsNot Nothing Then
            e.DataRow("乐理费") = dr3("课时费")

        End If
    End If
End If

If e.DataCol.Name = "课程" Then
    If e.NewValue Is Nothing Then
        e.DataRow("课时费") = Nothing
    Else
        Dim dr1  As  DataRow
        dr1 =  DataTables("课类分类表").Find("科目 = \'" & e.DataRow("课程") & "\'")
        If dr1 IsNot Nothing Then
            e.DataRow("课时费") = dr1("课时费")

        End If
    End If
End If


If e.DataCol.Name = "陪练等级" Then
    If e.NewValue Is Nothing Then
        e.DataRow("陪练等级") = Nothing
    Else
        Dim dr2  As  DataRow
        dr2 =  DataTables("课类分类表").Find("科目 = \'" & e.DataRow("陪练等级") & "\'")
        If dr2 IsNot Nothing Then
            e.DataRow("陪练费") = dr2("课时费")
                        End If
    End If
End If

Select Case e.DataCol.Name
    Case "新加课时"
            e.DataRow("培训新缴") = e.DataRow("课时费") * e.DataRow("新加课时")

            e.DataRow("剩余课时") = e.DataRow("剩余课时") + e.DataRow("新加课时")
            e.DataRow("学费余额") = e.DataRow("培训新缴") + e.DataRow("学费余额")


                End  Select

Select Case e.DataCol.Name
    Case "新加乐理"
        e.DataRow("乐理新缴") = e.DataRow("乐理费") * e.DataRow("新加乐理")

        e.DataRow("乐理课时") = e.DataRow("乐理课时") + e.DataRow("新加乐理")
        e.DataRow("乐理学费余额") = e.DataRow("乐理学费余额") + e.DataRow("乐理新缴")

    End  Select

 Select Case e.DataCol.Name
        Case "新加陪练"
                e.DataRow("陪练新缴") = e.DataRow("陪练费") * e.DataRow("新加陪练")

                e.DataRow("陪练课时") = e.DataRow("陪练课时") + e.DataRow("新加陪练")
                e.DataRow("陪练费余额") = e.DataRow("陪练新缴") + e.DataRow("陪练费余额")

        End  Select


--  作者:大红袍
--  发布时间:2015/7/24 17:21:00
--  

 你写的代码已经是最优的代码了,这样写逻辑也清晰一些。

 

 你不同列,有不同的处理,就这样写代码,不会影响效率。


--  作者:bestorange
--  发布时间:2015/7/24 18:18:00
--  

谢谢大师指点


--  作者:大红袍
--  发布时间:2015/7/26 11:07:00
--  

 代码没问题。要想提高,请先去看完视频教程

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=67187