以文本方式查看主题

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

--  作者:seal51
--  发布时间:2015/5/26 17:04:00
--  分页加载与流水账
分页加载与流水账, 用内置的加载树发现按年加载余额是正确的, 按月加载余额就不对了, 怎么回事呢?
--  作者:Bin
--  发布时间:2015/5/26 17:08:00
--  
上例子
--  作者:seal51
--  发布时间:2015/5/26 17:13:00
--  

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

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

--  作者:大红袍
--  发布时间:2015/5/26 17:21:00
--  

 计算应该是不会有什么问题的,具体,请上传你的实例


--  作者:seal51
--  发布时间:2015/5/26 17:54:00
--  
代码和帮助一模一样, 关于列子, 我需要时间做, 或者我联系客服让他们给看看, 可以吗
--  作者:大红袍
--  发布时间:2015/5/26 18:18:00
--  

我测试帮助文档的例子没有发现你的问题。

 

基于帮助文档做个例子发上来。


--  作者:seal51
--  发布时间:2015/5/27 11:26:00
--  

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

 

老师,发例子上来, 看看楼上我的问题, 帮忙解答一下


--  作者:Bin
--  发布时间:2015/5/27 11:30:00
--  
.
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150527112914.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150527112907.png
图片点击可在新窗口打开查看


没问题啊

--  作者:seal51
--  发布时间:2015/5/28 0:25:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:分页流水账150528.foxdb


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

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

--  作者:Bin
--  发布时间:2015/5/28 8:58:00
--  
原因很简单,你有个个年份,但是你Sortkey有重复.所以你根据SorTKey计算,就会计算到1999年的值去.加入年份判断即可.


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 \'如果没有找到上一行,说明本行就是第一行
            Dim jc As Double \'计算之前的结存
            Dim y As Integer = e.DataRow("日期").Year
            Dim dt1 As New Date(y, 1, 1)
            Dim dt2 As New Date(y, 12, 31)
            Dim Filter As String
            Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
            jc =  DataTables("例子一").SQLCompute("Sum(收入) - Sum(支出)",Filter & " and [_SortKey] < " & e.DataRow("_SortKey"))
            e.DataRow("余额") = e.DataRow("收入") - e.DataRow("支出") + jc
            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