以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]DataColChanged数据自动更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158206)

--  作者:洮沙
--  发布时间:2020/11/11 15:19:00
--  [求助]DataColChanged数据自动更新

目前有“凭证明细表”一张,下设“借方_数量”、“借方_单价”、“借方_金额”三列:

 

计划实现:

1、第一次输入数量、单价后自动计算金额;(以下代码已经实现)

2、修改金额后根据现有数量自动计算单价;(以下代码已经实现)

3、修改数量或者修改单价后自动计算金额;(感觉好像进入循环,不会)

也就是,不管修改任何一个数据,都能自动计算。(应该能够实现,金蝶财务软件有此功能)

 

 

请老师帮忙看一下,谢谢!

 

现在表DataColChanged事件有以下代码:

Select e.DataCol.Name

Case "借方_数量" ,"借方_单价"  
        If  e.DataRow("审核") = True Then
        Else
            If e.DataRow("借方_数量") <> 0 And  e.DataRow("借方_金额") = 0 Then
                e.DataRow("借方_金额")  =   e.DataRow("借方_数量") * e.DataRow("借方_单价")
            Else
            End If
        End If

 Case "借方_金额" 

        If  e.DataRow("审核") = True Then
        Else
             If e.DataRow("借方_数量") <> 0 Then
                e.DataRow("借方_单价") =  e.DataRow("借方_金额") / e.DataRow("借方_数量")
            Else
            End If
        End If
End Select

[此贴子已经被作者于2020/11/11 15:22:26编辑过]

--  作者:有点蓝
--  发布时间:2020/11/11 15:21:00
--  
参考:http://www.foxtable.com/webhelp/topics/2218.htm

Select e.DataCol.Name

Case "借方_数量" ,"借方_单价"  
        If  e.DataRow("审核") = True Then
        Else
            If e.DataRow("借方_数量") <> 0 And  e.DataRow("借方_金额") = 0 Then

SystemReady = False
                e.DataRow("借方_金额")  =   e.DataRow("借方_数量") * e.DataRow("借方_单价")
SystemReady = true
            End If
        End If

 Case "借方_金额" 

        If  e.DataRow("审核") = True Then
        Else
             If e.DataRow("借方_数量") <> 0 Then

SystemReady = False
                e.DataRow("借方_单价") =  e.DataRow("借方_金额") / e.DataRow("借方_数量")
SystemReady = true
            End If
        End If
End Select


--  作者:洮沙
--  发布时间:2020/11/11 15:36:00
--  回复:(有点蓝)参考:http://www.foxtable.com/webh...

谢谢,蓝老师!我试一下。