以文本方式查看主题

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

--  作者:bestorange
--  发布时间:2015/7/18 22:00:00
--  表事件命令 求简化

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

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


If e.DataCol.Name = "陪练等级" Then
    If e.NewValue Is Nothing Then
        e.DataRow("陪练等级") = Nothing
    Else
        Dim dr  As  DataRow
        dr =  DataTables("课类分类表").Find("科目 = \'" & e.DataRow("陪练等级") & "\'")
        If dr IsNot Nothing Then
            e.DataRow("陪练费") = dr("课时费")
        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/18 22:10:54编辑过]

--  作者:y2287958
--  发布时间:2015/7/18 22:26:00
--  
试试Dim lms As String = "乐理程度|课程|陪练等级"
For lm As String In lms.Split("|")
    If e.DataCol.Name = lm
        If e.NewValue Is Nothing Then
            e.DataRow(left(lm,2) & "费") = Nothing
        Else
            Dim dr  As  DataRow
            dr =  DataTables("课类分类表").Find("科目 = \'" & e.DataRow(lm) & "\'")
            If dr IsNot Nothing Then
                e.DataRow(left(lm,2) & "费") = dr("课时费")
            End If
        End If
    End If
Next
Select Case e.DataCol.Name
    Case "新加课时"
        e.DataRow("培训新缴") = e.DataRow("课时费") * e.DataRow("新加课时")
        e.DataRow("剩余课时") = e.DataRow("剩余课时") + e.DataRow("新加课时")
        e.DataRow("学费余额") = e.DataRow("培训新缴") + e.DataRow("学费余额")
    Case "新加乐理"
        e.DataRow("乐理新缴") = e.DataRow("乐理费") * e.DataRow("新加乐理")
        e.DataRow("乐理课时") = e.DataRow("乐理课时") + e.DataRow("新加乐理")
        e.DataRow("乐理学费余额") = e.DataRow("乐理学费余额") + e.DataRow("乐理新缴")
    Case "新加陪练"
        e.DataRow("陪练新缴") = e.DataRow("陪练费") * e.DataRow("新加陪练")
        e.DataRow("陪练课时") = e.DataRow("陪练课时") + e.DataRow("新加陪练")
        e.DataRow("陪练费余额") = e.DataRow("陪练新缴") + e.DataRow("陪练费余额")
End  Select