Foxtable(狐表)用户栏目专家坐堂 → 日期展期的问题


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

主题:日期展期的问题

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
日期展期的问题  发帖心情 Post By:2011/8/9 11:00:00 [只看该作者]

Dim Index1 As Integer
    Dim drs1 As List(Of DataRow)
    drs1 = DataTables("利息").Select("合同编号='" & rr("合同编号") & "'And 本期结息日= #" & rr("计息结束时间").Addmonths(T) & "#")
    For Each dr1 As DataRow In drs1
        Index1= Tables("利息").FindRow(dr1)
        If Index1> -1 Then '如果找到此行
        Tables("利息").Position = Index1
        MessageBox.show("合同编号为:" & dr1("合同编号") & "现在开始分期了")
        Dim d1 As Date =Tables("利息").current("本期起息日")
        Dim d2 As Date =Tables("利息").current("本期结息日")
        Dim d As Date = d1
        Dim days1 As Integer = d1.day
        Do  While d1 < 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("本期起息日") = d1
            d1 = d1.addmonths(1)
            Dim days2 = Date.DaysInMonth(d1.year,d1.month)
            If d1.Day < days1
                d1 = new Date(d1.year,d1.month,math.min(days2,days1))
            End If
            If d1 > d2 Then           '如果d大于d2
            d1 = d2               'd等于d2
        End If
        r("本期结息日") = d1
    Loop

老大你帮我看看这段代码,我用对话框明明可以定位找到合同编号.但是新增行的合同号就是不对,比如

 利息表里有002  和 003两个合同编号,对话框一一找到显示,但是分期的时候合同编号全部变成002了,起息日和结息日的分期也对的,就是合同编号不对.错哪儿啦.


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


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

Dim Index1 As Integer
Dim drs1 As List(Of DataRow)
drs1 = DataTables("利息").Select("合同编号='" & rr("合同编号") & "'And 本期结息日= #" & rr("计息结束时间").Addmonths(T) & "#")
For Each dr1 As DataRow In drs1
    Dim d1 As Date =dr1("本期起息日")
    Dim d2 As Date =dr1("本期结息日")
    Dim d As Date = d1
    Dim days1 As Integer = d1.day
    Do  While d1 < 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("本期起息日") = d1
        d1 = d1.addmonths(1)
        Dim days2 = Date.DaysInMonth(d1.year,d1.month)
        If d1.Day < days1
            d1 = new Date(d1.year,d1.month,math.min(days2,days1))
        End If
        If d1 > d2 Then
            d1 = d2
        End If
        r("本期结息日") = d1
    Loop
Next

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


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

老大还是一样


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


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

也许问题在这里:

 

r("客户编号")=Tables("合同").Current("客户编号")

 

你取的又不是dr1的合同编号,而是合同表当前行的合同编号,上面的代码看不出合同表的当前行有变动,自然合同编号都是一样的。

 

重新整理代码,理清逻辑和思路。


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


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

我再看看.

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


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

上面你给我的思路,在中午我就想到估计是你现在提出的,解决了.

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


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

r("客户编号")=dr1("客户编号")就可以了,逻辑错了.

 回到顶部