以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 流水账的余额跨页计算 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=42410) |
||||||||
-- 作者:zhangxl1964 -- 发布时间:2013/11/11 10:28: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 以上的代码只能实现显示数据的第一行余额开始计算,如何包括以前的数据。
|
||||||||
-- 作者:狐狸爸爸 -- 发布时间:2013/11/11 10:46:00 -- 分页加载,一般就不要考虑流水账了,除非你另外增加一个“以前结存”的列,每次分页加载之后,用sql语句计算出以前结存的数据,写入已经加载的第一行。 |
||||||||
-- 作者:zhangxl1964 -- 发布时间:2013/11/11 10:49:00 -- 用sql语句计算出以前结存的数据,写入已经加载的第一行。 能否帮助一下啊!这段代码怎么撰写。 |
||||||||
-- 作者:zhangxl1964 -- 发布时间:2013/11/11 10:51:00 -- 现金帐需要按时段分页加载,但余额要连续计算。 |
||||||||
-- 作者:Bin -- 发布时间:2013/11/11 10:58:00 -- 利用SQLCOMMAND 执行SQL语句获得上面部分的余额 select sum(收入)-sum(指出) from {表A} where _SortKey < 你现在第一行的_SortKey
|
||||||||
-- 作者:狐狸爸爸 -- 发布时间:2013/11/11 11:05:00 -- 做了个例子给你,不用增加一列,用一个全局变量保存之前的结存即可,注意表事件afterload中的代码:
[此贴子已经被作者于2013-11-11 11:29:32编辑过]
|
||||||||
-- 作者:Bin -- 发布时间:2013/11/11 11:21:00 -- 以下是引用狐狸爸爸在2013-11-11 11:05:00的发言:
做了个例子给你,不用增加一列,用一个全局变量保存之前的结存即可,注意表事件afterload中的代码:
|
||||||||
-- 作者:狐狸爸爸 -- 发布时间:2013/11/11 11:28:00 -- 惭愧,我改进一下
|
||||||||
-- 作者:zhangxl1964 -- 发布时间:2013/11/11 11:40:00 -- 老师:这个例子怎么打开 |
||||||||
-- 作者:狐狸爸爸 -- 发布时间:2013/11/11 11:45:00 -- 下载后,用foxtable打开。 |