Foxtable(狐表)用户栏目专家坐堂 → 看我看看这个问题


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

主题:看我看看这个问题

帅哥哟,离线,有人找我吗?
blackzhu
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
看我看看这个问题  发帖心情 Post By:2011/7/12 15:40:00 [只看该作者]

合同里面的窗口上面有一个分周期的按钮,我第一次随便执行一个合同,在利息表里面的周期起始日和周期结束日都能执行,但是再执行一个合同就不对.大家可以先执行一个合同看效果,再执行看第二次合同的结果.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:融资管理系统 周期版2.table


我要球的结果是:

合同表

合同编号                开始计息日       结束结息日                       付息方式
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                                                                              二月一次

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/12 17:02:00 [只看该作者]

你原来的代码:

 

If Tables("合同").Current("付息方式") ="二月一付" Then
    Dim A1 As Date = Tables("合同").Current("计息开始时间")
    Dim A2 As Date = Tables("合同").Current("计息结束时间")
    Dim A As Date = A1
    Do While A < A2
        For i1 As Integer = 0 To Tables("利息").Count-1 Step 2
            Tables("利息").Rows(i1)("周期起始日") = A
            A = A.AddMonths(2)
            If A > A2 Then
                A = A2
            End If
            Tables("利息").Rows(i1)("周期结束日") = A
        Next
    Loop
End If

第一次执行和第二次执行,都是从第一行开始赋值,也就是第二次执行的时候,你赋值的还是第一次生成的那些行。


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/7/12 17:48:00 [只看该作者]

哦,我试试

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/7/12 17:51:00 [只看该作者]

努力学习中,每一次的询问以及答复都是我进步的源泉.

 回到顶部