Foxtable(狐表)用户栏目专家坐堂 → 还款计划


  共有3564人关注过本帖树形打印复制链接

主题:还款计划

帅哥,在线噢!
裴保民
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:2034 积分:13016 威望:0 精华:0 注册:2017/4/3 15:01:00
还款计划  发帖心情 Post By:2020/3/10 1:17:00 [只看该作者]

假如有一张流水表字段有“记账日期”、‘应还金额’’、"已还金额"、“还款限期”,还款时我想实现:

(1)根据本次还款金额,优先还“还款限期”最近一笔交易,如果本次还款金额小于(最近一笔交易还款金额 - 已还金额 ) 时 ,执行"已还金额"+本次还款金
(2)如果本次还款金额大于(最近一笔还款金额 - 已还金额 ) 时 ,执行"删除最近一笔还款金额,如果本次还款金额还有余额就执行距离最近的下一笔交易,(同上)以此类推直至本次还款金额为零时为止。
该怎么实现此功能呢?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/10 9:02:00 [只看该作者]

根据“还款限期”排序,然后遍历取值,如果还款金额小于待还,则执行"已还金额"+本次还款金,退出循环,否则继续循环下一行判断

 回到顶部
帅哥,在线噢!
裴保民
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:2034 积分:13016 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By: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


图片点击可在新窗口打开查看此主题相关图片如下:截图07.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:截图08.jpg
图片点击可在新窗口打开查看







[此贴子已经被作者于2020/3/10 10:46:38编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部
帅哥,在线噢!
裴保民
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:2034 积分:13016 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2020/3/10 12:23:00 [只看该作者]

怎么数据全给删除了呢?

图片点击可在新窗口打开查看此主题相关图片如下:截图09.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:截图10.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:截图11.jpg
图片点击可在新窗口打开查看


刚打开窗体运行时第一笔也没按还距离今天最近一次顺序还

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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/10 14:15:00 [只看该作者]

我测试没有问题。代码是按照还款限期,从小到大处理的

 回到顶部
帅哥,在线噢!
裴保民
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:2034 积分:13016 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2020/3/10 14:21:00 [只看该作者]

已解决,误将应还款金额,写为已还款金额

 回到顶部