以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 看我看看这个问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=11193) |
||||
-- 作者:blackzhu -- 发布时间:2011/7/12 15:40:00 -- 看我看看这个问题 合同里面的窗口上面有一个分周期的按钮,我第一次随便执行一个合同,在利息表里面的周期起始日和周期结束日都能执行,但是再执行一个合同就不对.大家可以先执行一个合同看效果,再执行看第二次合同的结果.
我要球的结果是: 合同表 合同编号 开始计息日 结束结息日 付息方式 001 2011-01-01 2011-03-01 一月一次 002 2011-01-01 2011-05-01 二月一次 正确执行结果 利息表 合同编号 周期开始日 周期结束日 付息方式 001 2011-01-01 2011-02-01 一月一次 001 2011-02-01 2011-03-01 一月一次 002 2011-01-01 2011-03-01 二月一次 002 二月一次 002 2011-03-01 2011-05-01 二月一次 002 二月一次
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/7/12 16:45:00 -- Dim d1 As Date = Tables("合同").Current("计息开始时间") Dim d2 As Date = Tables("合同").Current("计息结束时间") Dim d As Date = d1 Dim ld As Date = d1 Dim m As Integer Dim cnt As Integer Select Case Tables("合同").Current("付息方式") Case "一月一付" m = 1 Case "二月一付" m =2 Case "三月一付" m =3 Case "四月一付" m = 4 Case "半年一付" m =6 Case "一年一付" m =12 End Select Do While d < d2 Dim r As Row = Tables("利息").AddNew() r("客户编号")=Tables("合同").Current("客户编号") r("客户名称")=Tables("合同").current("客户名称") r("合同编号")=Tables("合同").current("合同编号") r("本金")=Tables("合同").current("本金") r("付息时点")=Tables("合同").current("付息时点") r("付息方式")=Tables("合同").current("付息方式") r("方式")=Tables("合同").current("方式") r("利率")=Tables("合同").current("利率") r("合同现状")=Tables("合同").current("合同现状") r("本期起息日") = d d = d.AddMonths(1) If d > d2 Then d = d2 End If r("本期结息日") = d If cnt Mod m = 0 Then r("周期起始日") = ld ld = d.addmonths(m) If ld > d2 Then ld = d2 End If r("周期结束日") = ld End If cnt = cnt +1 Loop |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/7/12 17:02:00 -- 你原来的代码:
If Tables("合同").Current("付息方式") ="二月一付" Then 第一次执行和第二次执行,都是从第一行开始赋值,也就是第二次执行的时候,你赋值的还是第一次生成的那些行。 |
||||
-- 作者:blackzhu -- 发布时间:2011/7/12 17:48:00 -- 哦,我试试 |
||||
-- 作者:blackzhu -- 发布时间:2011/7/12 17:51:00 -- 努力学习中,每一次的询问以及答复都是我进步的源泉. |