以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教一个循环计算的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48846)

--  作者:akzzwj
--  发布时间:2014/4/7 14:01:00
--  请教一个循环计算的问题
已知收入,如果输入 支出,可以计算出余额;如果输入余额,也可以计算出支出。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:收支计算.foxdb


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

--  作者:有点甜
--  发布时间:2014/4/7 14:14:00
--  

 是单行计算,还是流水账?

 

http://www.foxtable.com/help/topics/1572.htm

 


--  作者:akzzwj
--  发布时间:2014/4/7 14:16:00
--  
是单行计算,请问代码该如何写呢?
--  作者:有点甜
--  发布时间:2014/4/7 14:34:00
--  

 做了一下,是矛盾,只能这样处理一下了。编写datacolchanged事件

 

SystemReady = False
Select Case e.DataCol.Name
    Case "收入","支出", "余额"
        If e.NewValue <> Nothing  Then
            If e.DataRow.IsNull("收入") = False AndAlso e.DataRow.IsNull("支出") = False Then
                If e.DataRow.IsNull("余额") Then
                    e.DataRow("余额") = e.DataRow("收入") - e.DataRow("支出")
                End If
            Else If e.DataRow.IsNull("收入") = False AndAlso e.DataRow.IsNull("余额") = False Then
                If e.DataRow.IsNull("支出") Then
                    e.DataRow("支出") = e.DataRow("收入") - e.DataRow("余额")
                End If
            Else If e.DataRow.IsNull("支出") = False AndAlso e.DataRow.IsNull("余额") = False Then
                If e.DataRow.IsNull("收入") Then
                    e.DataRow("收入") = e.DataRow("支出") + e.DataRow("余额")
                End If
            End If
        End If
End Select
SystemReady = True


--  作者:rjh4078
--  发布时间:2014/4/7 15:38:00
--  

甜老师 SystemReady 这个是 用来做控制什么的 我有个问题 如果一个表有datacolchanged事件 A=B+C 当这行数据是从别的表直接赋值过来 列也是一样 但是A=B-C  这个时候A的结果以哪个为准?

 


--  作者:有点甜
--  发布时间:2014/4/7 15:53:00
--  
以下是引用rjh4078在2014-4-7 15:38:00的发言:

甜老师 SystemReady 这个是 用来做控制什么的 我有个问题 如果一个表有datacolchanged事件 A=B+C 当这行数据是从别的表直接赋值过来 列也是一样 但是A=B-C  这个时候A的结果以哪个为准?

 

 

这个问题需要有一个准则,不然就是死循环,或者计算不灵活

 

http://www.foxtable.com/help/topics/2218.htm