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


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

主题:看我看看这个问题

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


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望: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

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


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望: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

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


 回到顶部