以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172847) |
||||
-- 作者:江南小镇 -- 发布时间:2021/11/3 14:50:00 -- [求助]计算 老师好,怎么会计算出来的结果不准确。 此主题相关图片如下:image 1.png 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 |
||||
-- 作者:有点蓝 -- 发布时间:2021/11/3 15:32:00 -- drs(i)("结欠金额") = drs(i-1)("结欠金额") + drs(i)("盈亏") + drs(i)("付款金额")
|
||||
-- 作者:江南小镇 -- 发布时间:2021/11/3 16:00:00 -- 老师,计算结果还是不准确
|
||||
-- 作者:y2287958 -- 发布时间:2021/11/3 16:13:00 -- 测试结果哪里不准确?我看了一下,没发现问题 |
||||
-- 作者:有点蓝 -- 发布时间:2021/11/3 16:17:00 -- 哪个数据有错?正确结果是怎样的? |
||||
-- 作者:江南小镇 -- 发布时间:2021/11/3 16:26:00 -- 老师,逻辑搞错了。 |
||||
-- 作者:有点蓝 -- 发布时间:2021/11/3 16:31:00 -- 哦,然后呢 |
||||
-- 作者:江南小镇 -- 发布时间:2021/11/3 16:37: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
|
||||
-- 作者:有点蓝 -- 发布时间:2021/11/3 16:49:00 -- 没看懂,逐行解释一下,然后给出正确结果说明 |
||||
-- 作者:江南小镇 -- 发布时间:2021/11/3 17:13:00 -- 谢谢老师,好了。 |