以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  通过代码来计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88881)

--  作者:约翰舒
--  发布时间:2016/8/10 22:01:00
--  通过代码来计算
例:提成表中有一列为 “内部渠道”,数据类型为逻辑型Boolean
                    一列为“外部渠道”,数据类型为逻辑型Boolean
                    一列为“经理提成”,数据类型为双精度小数型

我想实现的是:如果“内部渠道”为“是”,经理提成为0
                    如果“外部渠道”为“是”,经理提成为100
                    如果“外部渠道”为“否”,经理提成为50
                    以上都不满足的话,经理提成为0

请老师给予指导,谢谢老师

--  作者:大红袍
--  发布时间:2016/8/10 22:10:00
--  

If e.DataCol.Name = "外部渠道" AndAlso e.NewValue = true Then

    e.DataRow("经理提成") = 100

End If

If e.DataCol.Name = "外部渠道" AndAlso e.NewValue = False Then

    e.DataRow("经理提成") = 50

End If

If e.DataCol.Name = "内部渠道" AndAlso e.NewValue = true Then

    e.DataRow("经理提成") = 0

End If


--  作者:约翰舒
--  发布时间:2016/8/10 22:34:00
--  
不对啊老师

当我选择内部渠道为“是”,再选择外部为“是”的时候,经理提成是100,这不对的

要实现的是:如果“内部渠道”为“是”,经理提成为0
                          如果“外部渠道”为“是”,经理提成为100
                        如果“外部渠道”为“否”,经理提成为50
                      
                    以上三个条件都不满足的话,经理提成仍然为0,这一条很重要啊!!!
还有就是,如果“内部渠道”为“是”,不管“外部渠道”为“是”或“否”,经理提成都为0
               当“内部渠道”为否时,才按照“外部渠道”的计算

麻烦老师再帮我看看,谢谢啦

--  作者:大红袍
--  发布时间:2016/8/10 22:41:00
--  
If e.DataCol.Name = "外部渠道" OrElse e.DataCol.Name = "内部渠道"  Then
    If e.DataRow("内部渠道") = True Then
        e.DataRow("经理提成") = 0
       
    Else
        If e.DataRow("外部渠道") = True Then
            e.DataRow("经理提成") = 100
        Else
            e.DataRow("经理提成") = 50
        End If
    End If
End If

--  作者:约翰舒
--  发布时间:2016/8/11 7:41:00
--  
嗯嗯,谢谢老师

还有一个小问题需要请教老师!

因为“内部渠道”列 和 “外部渠道”列 数据类型都是逻辑型,所以在表中默认显示为“否”

但是,当实际情况都为“否”,即“内部渠道” 和 “外部渠道” 都为“否”时,就不用去触发事件,就是不做任何操作,那么经理提成就没数据显示

问题:在“内部渠道” 和 “外部渠道” 列 都为“否”时,就是两列刚好符合其逻辑默认值,让“经理提成” 显示数据?
       
     

--  作者:Hyphen
--  发布时间:2016/8/11 8:50:00
--  
If e.DataRow.Isnull( "外部渠道") AndAlso e.DataRow.Isnull("内部渠道") Then e.DataRow("经理提成") = 0
If e.DataCol.Name = "外部渠道" OrElse e.DataCol.Name = "内部渠道"  Then
    If e.DataRow("内部渠道") = True Then
        e.DataRow("经理提成") = 0
        
    Else
        If e.DataRow("外部渠道") = True Then
            e.DataRow("经理提成") = 100
        Else
            e.DataRow("经理提成") = 50
        End If
    End If
End If

--  作者:约翰舒
--  发布时间:2016/8/11 9:20:00
--  
太棒了,老师,非常感谢

--  作者:约翰舒
--  发布时间:2016/8/17 15:34:00
--  
If e.DataRow.Isnull( "外部渠道") AndAlso e.DataRow.Isnull("内部渠道") Then e.DataRow("经理提成") = 0

老师,这段代码在这里是什么意思?


--  作者:大红袍
--  发布时间:2016/8/17 15:35:00
--  
如果 外部、内部 都是空值,就把 提成设置成0