以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  流水账  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179486)

--  作者:胡噜胡噜毛
--  发布时间:2022/8/26 9:11:00
--  流水账
流水账计算结余,按照日期列筛选后,能不能根据每个月自动重算结余? 比如筛选一月,出现一月的记录,结余是一月的结余?
Select Case e.DataCol.Name
    Case "收入_金额","支出_金额"
        Dim dr As DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc") \'找出上一行
        If dr Is Nothing Then \'如果没有找到上一行,说明本行就是第一行
            e.DataRow("结余") = e.DataRow("收入_金额") - e.DataRow("支出_金额")
            dr = e.DataRow
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey"), "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1 \'重算余下行的余额
            drs(i)("结余") = drs(i-1)("结余") + drs(i)("收入_金额") - drs(i)("支出_金额")
        Next    
End Select

--  作者:有点蓝
--  发布时间:2022/8/26 9:17:00
--  
把筛选条件加进来

Select Case e.DataCol.Name
    Case "收入_金额","支出_金额"
        Dim dr As DataRow
dim filter as string
if tables("xx表").filter > "" then
filter = " and " & tables("xx表").filter 
end if
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey")filter , "[_SortKey] Desc") \'找出上一行