以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 还款计划 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147108) |
-- 作者:裴保民 -- 发布时间:2020/3/10 1:17:00 -- 还款计划 假如有一张流水表字段有“记账日期”、‘应还金额’’、"已还金额"、“还款限期”,还款时我想实现: (1)根据本次还款金额,优先还“还款限期”最近一笔交易,如果本次还款金额小于(最近一笔交易还款金额 - 已还金额 ) 时 ,执行"已还金额"+本次还款金 (2)如果本次还款金额大于(最近一笔还款金额 - 已还金额 ) 时 ,执行"删除最近一笔还款金额,如果本次还款金额还有余额就执行距离最近的下一笔交易,(同上)以此类推直至本次还款金额为零时为止。 该怎么实现此功能呢?
|
-- 作者:有点蓝 -- 发布时间:2020/3/10 9:02:00 -- 根据“还款限期”排序,然后遍历取值,如果还款金额小于待还,则执行"已还金额"+本次还款金,退出循环,否则继续循环下一行判断 |
-- 作者:裴保民 -- 发布时间:2020/3/10 10:46:00 -- 这段代码哪错运行后出错 Tables("应付交易明细").Sort = "还款限期" Dim yue As Double Dim lst1 As New List(of DataRow) Dim lst2 As New List(of DataRow) For Each dr As DataRow In DataTables("应付交易明细").DataRows If DataTables("应付交易明细").Find("还款限期=\'" & ( dr("还款限期")) & "\'") Is Nothing Then lst1.Add(dr) Else lst2.Add(dr) End If Next For Each dr As DataRow In lst1 lst1 =e.Form.Controls("hkjeNumericComboBox")-(dr("应还金额")-dr("已还金额")) dr.Delete Next For Each dr As DataRow In lst2 dr("已还金额") =lst1 Next [此贴子已经被作者于2020/3/10 10:46:38编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/3/10 11:49:00 -- dim v1 as double =e.Form.Controls("hkjeNumericComboBox").value Dim lst1 As New List(of DataRow) For Each dr As DataRow In DataTables("应付交易明细").select("","还款限期") if dr("最近一笔还款金额") - dr("已还金额") > v1 dr("已还金额") = dr("已还金额") + v1 exit for else v1 = v1 - dr("已还金额") lst1.add(dr) end if Next For Each dr As DataRow In lst1 dr.Delete Next |
-- 作者:裴保民 -- 发布时间:2020/3/10 12:23:00 -- 怎么数据全给删除了呢? 刚打开窗体运行时第一笔也没按还距离今天最近一次顺序还
Dim v1 As Double =e.Form.Controls("hkjeNumericComboBox").value Dim lst1 As New List(of DataRow) For Each dr As DataRow In DataTables("应付交易明细").Select("","还款限期") If dr("应还金额") - dr("已还金额") > v1 dr("已还金额") = dr("已还金额") + v1 Exit For Else v1 = v1 + dr("已还金额")-dr("应还金额") lst1.add(dr) End If Next For Each dr As DataRow In lst1 dr.Delete Next [此贴子已经被作者于2020/3/10 12:58:55编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/3/10 14:15:00 -- 我测试没有问题。代码是按照还款限期,从小到大处理的
|
-- 作者:裴保民 -- 发布时间:2020/3/10 14:21:00 -- 已解决,误将应还款金额,写为已还款金额 |