以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]关于流水账问题??  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3742)

--  作者:ybmjy
--  发布时间:2009/7/29 21:06:00
--  [讨论]关于流水账问题??
狐爸做的例子有问题,最后两行计算不准确。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水账.table


能不能不用列来判断,而象易表一样用行来计算呢?如果能该怎样写代码
还有能象易表刷新公式样,每列可单独加代码或者有事件就好了
[此贴子已经被作者于2009-7-29 21:13:19编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/7/29 21:31:00
--  
按照日期排序后,你会看到计算结果完全正确的
--  作者:yangming
--  发布时间:2009/7/29 21:39:00
--  
最后两行计算不准确的原因是下一行的日期只能是等于或是大于上一行的日期
--  作者:ybmjy
--  发布时间:2009/7/29 23:35:00
--  

易表中的这个公式在狐表中用代码该如何写:if(row=1,[收入],cell(row-1,col)+[收入]-[支出] )

 

[此贴子已经被作者于2009-7-30 0:22:35编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/7/30 8:04:00
--  
如果不比较日期,只按照输入顺序,那么更简单:

Select Case e.DataCol.Name
    Case "收入","支出"
        Dim drs As List(of DataRow)
        drs = e.DataTable.Select("[_Identify] <= " & e.DataRow("_identify") ,"[_Identify]")
        For Each dr As DataRow In drs
            Dim Filter As String = "[_Identify] <= " & dr("_Identify")
            Dim Val1 As Double =  e.DataTable.Compute("Sum(收入)",Filter)
            Dim Val2 As Double =  e.DataTable.Compute("Sum(支出)",Filter)
            dr("余额") = Val1 - Val2
        Next
End Select
[此贴子已经被作者于2009-7-30 8:58:19编辑过]