以文本方式查看主题 - 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 -- ![]() ![]() ![]() ![]() |
||||
-- 作者:大红袍 -- 发布时间: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 --
老师,发例子上来, 看看楼上我的问题, 帮忙解答一下 |
||||
-- 作者:Bin -- 发布时间:2015/5/27 11:30:00 -- . ![]() ![]() ![]() ![]() 没问题啊
|
||||
-- 作者:seal51 -- 发布时间:2015/5/28 0:25:00 --
![]() ![]() ![]() ![]() |
||||
-- 作者: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 |