Foxtable(狐表)用户栏目专家坐堂 → 关于日期分期


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

主题:关于日期分期

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2011/7/28 21:16:00 [显示全部帖子]

做了一个,似乎For ...Next 比 Do... Loop好点,后者增加行时有明显的跳跃感.

Dim Ls As String() = {"客户编号","客户名称","合同编号","本金","付息方式","方式","利率","合同现状"}
Dim d1,d2,d3,d As Date
Dim n,n1,i,y,m As Integer
Dim r1,r2 As Row
Dim t As Table

r1 = Tables("合同").Current
d1 = r1("计息开始时间")
d2 = r1("计息结束时间")
y = d1.year 
m= d1.month
d = New Date(y,m,Date.DaysInMonth(y,m))
n = DateDiff("m",d1,d2) + iif(d1< d,1,0)
t =Tables("利息")

t.StopRedraw
For i = 0 To n-1
    r2 = t.AddNew()
    For Each s As String In Ls
        r2(s) = r1(s)
    Next    
    If d1<d AndAlso i = 0 Then
        d2 = d1
        d3 = d
    Else
        n1 =iif(d1<d,i-1,i) 
        y = d.AddMonths(n1).year
        m = d.AddMonths(n1).month
        d2 = New Date(y,m,Date.DaysInMonth(y,m))
        y = d.AddMonths(n1+1).year
        m = d.AddMonths(n1+1).month
        d3 = New Date(y,m,Date.DaysInMonth(y,m))
    End If   
    r2("本期起息日") = d2
    r2("本期结息日") = d3
Next
t.ResumeRedraw

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2011/7/29 15:09:00 [显示全部帖子]

这样是否容易理解些:
Dim Ls As String() = {"客户编号","客户名称","合同编号","本金","付息方式","方式","利率","合同现状"}
Dim d1,d2,d As Date
Dim n,i As Integer
Dim r1,r2 As Row
Dim t As Table

r1 = Tables("合同").Current
d1 = r1("计息开始时间")
d2 = r1("计息结束时间")
n = Date.DaysInMonth(d1.year,d1.month)
d = New Date(d1.year,d1.month,n)
n = IIf(d.day<31,1,0)  
t =Tables("利息")

If d1<d Then
    r2 = t.AddNew()
    For Each s As String In Ls
        r2(s) = r1(s)
    Next
    r2("本期起息日") = d1
    r2("本期结息日") = d
End If
d= New Date(d.year,d.month-n,31)        

For i = n To DateDiff("m",d,d2)-1
    r2 = t.AddNew()
    For Each s As String In Ls
        r2(s) = r1(s)
    Next 
    r2("本期起息日") = d.AddMonths(i)
    r2("本期结息日") = d.AddMonths(i+1)
Next
[此贴子已经被作者于2011-7-29 18:35:33编辑过]

 回到顶部