以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]余额计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101250) |
||||
-- 作者:乡里出城 -- 发布时间:2017/5/27 10:57:00 -- [求助]余额计算 请教一下,我现在想执行以下代码时,每类产品名的第一行余额不变(维持原来的值),只需要从各类产品第二行的余额才开始计算,所以我直接把以下红底的代码直接去,还是不行 Dim drs As List(of DataRow) = DataTables("表A").Select("", "产品名,发生日期") If drs.Count > 0 Then drs(0)("余额") = drs(0)("收入") - drs(0)("支出") ‘设置第一行余额 For i As Integer = 1 To drs.Count - 1 \'从第二行开始逐行计算余额
If drs(i)("产品名") = drs(i - 1)("产品名") Then drs(i)("余额") = drs(i-1)("余额") + drs(i)("收入") - drs(i)("支出") Else drs(i)("余额") = drs(i)("收入") - drs(i)("支出") End If Next End If |
||||
-- 作者:有点蓝 -- 发布时间:2017/5/27 11:41:00 -- 测试了一下,没有问题啊。截图说明或者上传例子看看 |
||||
-- 作者:乡里出城 -- 发布时间:2017/5/27 16:49:00 -- 表A因为有空行,所以导致第一行也重算了,表B的A1产品能正常计算,但A2产品就不能正常计算了(假设每个产品之前都是有收支的数据,现在表里的数据只是所有数据的一部份),这个目标主要是为了解决每次增加后面的数据时,只要加载之前的部份数据(余额之前也正确计算保存了),可以起来余额承上启下的连续计算。(不采用案例的分页加载计算)
|
||||
-- 作者:有点蓝 -- 发布时间:2017/5/27 17:47:00 -- 空行 Dim drs As List(of DataRow) = DataTables("表A").Select("产品名 is not null", "产品名,发生日期") 表B: Dim drs As List(of DataRow) = DataTables("表B").Select("", "产品名,发生日期") If drs.Count > 0 Then For i As Integer = 1 To drs.Count - 1 \'从第二行开始逐行计算余额 If drs(i)("产品名") = drs(i - 1)("产品名") Then drs(i)("余额") = drs(i-1)("余额") + drs(i)("收入") - drs(i)("支出") End If Next End If |
||||
-- 作者:乡里出城 -- 发布时间:2017/5/28 23:12:00 -- 谢谢! |