Foxtable(狐表)用户栏目专家坐堂 → [求助]关于某日期与不同时段日期对比的判断


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

主题:[求助]关于某日期与不同时段日期对比的判断

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/15 11:55:00 [显示全部帖子]

思路:从开始日期一年一年累加生成每一行数据。累加一年之后,查找当年是否有利率修改(有多少次修改就增加多少行),然后开始日期、结束日期改变一下即可。

 

不会做请上传具体foxtable项目。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/15 12:46:00 [显示全部帖子]

Dim dt1 As DataTable = DataTables("个人借款")
Dim dt2 As DataTable = DataTables("利率表")
Dim dt3 As DataTable = DataTables("利息计算")
For Each dr As DataRow In dt1.Select("")
    dt3.DeleteFor("单据编号='" & dr("单据编号") & "'")
    Dim d1 As Date = dr("存款日期")
    Dim d2 As Date = dr("归还日期")
    Dim d = d1
    Dim bj As Double= dr("借入金额")
    Dim kssj As Date = dr("存款日期")
    Dim jssj As Date = kssj.AddYears(1).AddDays(-1)
    Dim dr_nll As DataRow = dt2.Find("利率更改日期<#" & d & "#", "利率更改日期 desc")
    Do While d <= d2
        Dim nd = new Date(d.year, 1, 1)
        Dim drs = dt2.Select("利率更改日期>=#" & d & "# and 利率更改日期<#" & d.addyears(1) & "#")
        Dim nll As Double = dr_nll("年利率")
        Dim ndr As DataRow
        For Each cdr As DataRow In drs
            ndr = dt3.addnew
            ndr("单据编号") = dr("单据编号")
            ndr("本金") = bj
            ndr("开始时间") = kssj
            jssj = cdate(cdr("利率更改日期")).adddays(-1)
            ndr("结束时间") = jssj
            ndr("天数") = (jssj-kssj).TotalDays+1
            ndr("年利率") = nll
            ndr("利息金额") = bj*nll/100*ndr("天数")/365
            kssj=jssj.adddays(1)
            jssj=jssj.addyears(1)
            bj = bj+ndr("利息金额")
            dr_nll = cdr
            nll = cdr("年利率")
        Next
        ndr = dt3.addnew
        ndr("单据编号") = dr("单据编号")
        ndr("本金") = bj
        ndr("开始时间") = kssj
        ndr("结束时间") = jssj
        ndr("天数") = (jssj-kssj).TotalDays+1
        ndr("年利率") = nll
        ndr("利息金额") = bj*nll/100
        kssj=kssj.addyears(1)
        jssj=jssj.addyears(1)
        bj = bj+bj*nll/100
        d = kssj
    Loop
Next

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/15 17:51:00 [显示全部帖子]

Dim dt1 As DataTable = DataTables("个人借款")
Dim dt2 As DataTable = DataTables("利率表")
Dim dt3 As DataTable = DataTables("利息计算")
For Each dr As DataRow In dt1.Select("")
    dt3.DeleteFor("单据编号='" & dr("单据编号") & "'")
    Dim d1 As Date = dr("存款日期")
    Dim d2 As Date = dr("归还日期")
    Dim d = d1
    Dim bj As Double= dr("借入金额")
    Dim kssj As Date = dr("存款日期")
    Dim jssj As Date = kssj.AddYears(1).AddDays(-1)
    Dim dr_nll As DataRow = dt2.Find("利率更改日期<#" & d & "#", "利率更改日期 desc")
    Do While d <= d2
        Dim nd = new Date(d.year, 1, 1)
        Dim drs = dt2.Select("利率更改日期>=#" & d & "# and 利率更改日期<#" & d.addyears(1) & "#")
        Dim nll As Double = 0
        If dr_nll IsNot Nothing Then nll=dr_nll("年利率")
        Dim ndr As DataRow
        For Each cdr As DataRow In drs
            ndr = dt3.addnew
            ndr("单据编号") = dr("单据编号")
            ndr("本金") = bj
            ndr("开始时间") = kssj
            jssj = cdate(cdr("利率更改日期")).adddays(-1)
            jssj = iif(jssj > dr("归还日期"), dr("归还日期"), jssj)
            ndr("结束时间") = jssj
            ndr("天数") = (jssj-kssj).TotalDays+1
            ndr("年利率") = nll
            ndr("利息金额") = bj*nll/100*ndr("天数")/365
            kssj=jssj.adddays(1)
            jssj=jssj.addyears(1)
            jssj = iif(jssj > dr("归还日期"), dr("归还日期"), jssj)
            bj = bj+ndr("利息金额")
            dr_nll = cdr
            nll = cdr("年利率")
        Next
        ndr = dt3.addnew
        ndr("单据编号") = dr("单据编号")
        ndr("本金") = bj
        ndr("开始时间") = kssj
        ndr("结束时间") = jssj
        ndr("天数") = (jssj-kssj).TotalDays+1
        ndr("年利率") = nll
        ndr("利息金额") = bj*nll/100
        kssj=kssj.addyears(1)
        jssj=jssj.addyears(1)
        jssj = iif(jssj > dr("归还日期"), dr("归还日期"), jssj)
        bj = bj+bj*nll/100
        d = kssj
    Loop
Next


 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/19 10:44:00 [显示全部帖子]

代码就在9楼,好好理解一下什么意思,然后改写成你需要的即可。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/26 18:25:00 [显示全部帖子]

Dim dt1 As DataTable = DataTables("个人借款")
Dim dt2 As DataTable = DataTables("会计出纳")
For Each dr As DataRow In dt2.Select("")
    Dim sj As Date = dr("时间")
    Dim kj As String = dr("会计")
    Dim cn As String = dr("出纳")
    For Each dr1 As DataRow In dt1.Select("")
        Dim jjsj As Date = dr1("记账时间")
        Dim ckrc As Date = dr1("存款日期")
        Dim ghrc As Date = dr1("归还日期")
        Dim skr As String = dr1("收款人")
        Dim kdr As String = dr1("开单人")
        Dim jjkj As String = dr1("记账会计")
        Dim jjcn As String = dr1("记账出纳")
        If jjsj>= sj Then '如果记账时间大于会计出纳表的时间
            jjkj = kj '那么个人借款表记账会计等于会计出纳表的会计
        End If
    Next
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/27 10:41:00 [显示全部帖子]

上传具体项目,说明你要做什么。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/27 11:10:00 [显示全部帖子]

Dim dt1 As DataTable = DataTables("个人借款")
Dim dt2 As DataTable = DataTables("会计出纳")
For Each dr1 As DataRow In dt1.Select("")
    Dim fdr As DataRow = dt2.Find("时间 <= #" & dr1("记账时间") & "#", "时间 desc")
    dr1("记账会计") = fdr("会计")
    dr1("记账出纳") = fdr("出纳")   
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/27 11:49:00 [显示全部帖子]

Dim dt1 As DataTable = DataTables("个人借款")
Dim dt2 As DataTable = DataTables("会计出纳")
For Each dr1 As DataRow In dt1.Select("")
    Dim fdr As DataRow = dt2.Find("时间 <= #" & dr1("记账时间") & "#", "时间 desc")
    Dim fdr2 As DataRow = dt2.Find("时间 <= #" & dr1("存款日期") & "#", "时间 desc")
    If fdr Is Nothing Then
        dr1("记账会计") = Nothing
        dr1("记账出纳") = Nothing
    Else
        dr1("记账会计") = fdr("会计")
        dr1("记账出纳") = fdr("出纳")
    End If
    If fdr Is Nothing Then
        dr1("收款人") = Nothing
        dr1("开单人") = nothing
    else
        dr1("收款人") = fdr2("出纳")
        dr1("开单人") = fdr2("会计")
    end if
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/27 11:57:00 [显示全部帖子]

Dim dt1 As DataTable = DataTables("个人借款")
Dim dt2 As DataTable = DataTables("会计出纳")
For Each dr1 As DataRow In dt1.Select("")
    Dim fdr As DataRow = dt2.Find("时间 <= #" & dr1("记账时间") & "#", "时间 desc")
    Dim fdr2 As DataRow = dt2.Find("时间 <= #" & dr1("存款日期") & "#", "时间 desc")
    If fdr Is Nothing Then
        dr1("记账会计") = Nothing
        dr1("记账出纳") = Nothing
    Else
        dr1("记账会计") = fdr("会计")
        dr1("记账出纳") = fdr("出纳")
    End If
    If fdr2 Is Nothing Then
        dr1("收款人") = Nothing
        dr1("开单人") = nothing
    else
        dr1("收款人") = fdr2("出纳")
        dr1("开单人") = fdr2("会计")
    end if
Next

 回到顶部