Foxtable(狐表)用户栏目专家坐堂 → 关于日期计算问题


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

主题:关于日期计算问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/22 9:56:00 [只看该作者]

你判断啊,如果 yq_out - yq_in 大于0,就是有没还的金额啊。(如果你连最基础代码都没看懂,那不建议你继续做后续功能)

 

        Dim yq_out = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转出'")
        Dim yq_in = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转入'")

 

 


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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2018/1/22 11:37:00 [只看该作者]

Dim dt_xyk As DataTable = DataTables("信用卡")
Dim dt_lsz As DataTable = DataTables("流水账")
Dim dt_dyyh As DataTable = DataTables("还款")
dt_dyyh.DataRows.Clear
Dim d As Date = new Date(Date.Today.Year, Date.Today.Month, 1)
Dim ds() As Date = {d, d.AddMonths(1)}
For Each d In ds
    For Each dr As DataRow In dt_xyk.DataRows
        Dim ndr As DataRow = dt_dyyh.AddNew
        ndr("账户名称") = dr("账户名称")
        ndr("账单日") = d.AddDays(dr("账单日")-1)
        ndr("转出") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 >= #" & ndr("账单日").addmonths(-1) & "# and 日期 <= #" & ndr("账单日") & "# and 类别 = '转出'")
        ndr("转入") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 >= #" & ndr("账单日").addmonths(-1) & "# and 日期 >= #" & ndr("账单日") & "# and 类别 = '转入'")
        Dim yq_out = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转出'")
        Dim yq_in = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转入'")
        ndr("信用额度") = dr("信用额度")
        ndr("当月应还") = ndr("转出") - ndr("转入") + yq_out + yq_in
        ndr("可用额度") = ndr("信用额度") - ndr("当月应还")
        If val(dr("还款日")) < val(dr("账单日")) Then
            ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
        Else
            ndr("还款日") = d.AddDays(dr("还款日")-1)
        End If
If  yq_out-yq_in >0 Then
  ndr("账单状态") = "逾期,未全额还款"
Else
If ndr("当月应还") > 0 Then
            If ndr("账单日") > Date.Today Then
                ndr("账单状态") = "未出账,没还款"
            Else
                ndr("账单状态") = "已出账,没还款"
            End If
        Else
            If ndr("账单日") > Date.Today Then
                ndr("账单状态") = "未出账,没还款"
            Else
                ndr("账单状态") = "已出账,已还款"
            End If
        End If
End If
          ndr("账单月份") = Format(d, "yyyyMM")
    Next
Next
e.Form.Controls("Table1").Table.DataSource = DataTables("还款")
e.Form.Controls("Table1").Table.Filter = "当月应还> 0"

甜老师这样对吗?怎么全是逾期呢?并且当月和未出账单还款额都不对(二者是相加赋给每个字段的,而不是未出款额赋值给未出款账单列,出款额和逾期额赋给本期账单额)


图片点击可在新窗口打开查看此主题相关图片如下:阿里旺旺图片20180122113008.jpg
图片点击可在新窗口打开查看



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/22 12:26:00 [只看该作者]

就实例来说,你最后想得到怎样的结果,截图说明。

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2018/1/22 13:14:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:阿里旺旺图片20180201090538.jpg
图片点击可在新窗口打开查看


[此贴子已经被作者于2018/1/22 13:15:58编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/22 14:15:00 [只看该作者]

以下是引用有点甜在2018/1/22 12:26:00的发言:
就实例来说,你最后想得到怎样的结果,截图说明。

 

就实例数据具体说明要的奥什么效果


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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2018/1/22 16:37:00 [只看该作者]

现在有一张“还款”表,数据来源于“流水账表”和“信用卡表” 假如有两张卡分别为“交通银行信用卡”和“光大银行信用卡”。其中“交通银行信用卡”账单日为每月的28号,还款日为账单日后25天;“光大银行银行信用卡”账单日为每月的25号,还款日为每月的15日,我想实现以下功能:
(1)根据账单日统计本期账单该还的金额和账单日以后的的未出账单的数据,注意本期账单包含(如果以前各期账单未还或未足额还款的账单)如果有则“账单状态”显示的是"已出账单,“逾期未还款如果已出账单,未还款”应还额应该是本期流水和以前未还额的合计,并以红色突出显示该行;如果只是本期未还则显示“已出账单,未还款”如果该银行卡离该还日期在7天以内怎该行已红色突出显示;下期期账单显示为“未出账单,未还款”;
(2)可有额度,应该是信用额度-本期流水-未出账单流水-以前逾期的流水。
蓝老师该怎么设计一下呢?

根据该表数据应该是这样的:假如今天是2018年1月13号
(1)、光大银行信用卡:信用额度:10000 账单日 ”账单日为每月的25号,还款日为每月的15日
                账单月份 201801:在2017年9月11号转出5000元,应还款日期为:2017年10月15号还款,可是种种原因至今未还,该笔款项自动转为逾期,还款表中“的账单状态”应以红色显示为“已出款,逾期未还款”可是2017年12月11号又转出2000应为2018年1月15日还款,加上2017年9月11号5000元的逾期本期应该还款额7000,还款日期为:2018年1月15日,可用额度应为2000(因为2018年1月11日又转出了1000)
               账单月份 201802:在2018年1月11号转出1000元,应还款日期为:2018年2月15号还款,“的账单状态”应以正常色显示为“未出款,未还款” 可用额度应为:2000
(2)、建设银行信用卡:信用额度:10000 账单日 ”账单日为每月的28号,还款日为账单日后25天
               账单月份 201801:在2017年12月11号转出1500元,应还款日期为:2018年1月23号还款,还款表中“的账单状态”应以正常颜色显示为“已出款,未还款可用额度应为3500(因为2018年1月12日又转出了5000)
               账单月份 201802:在2018年1月12号转出5000元,应还款日期为:2018年2月22号还款,还款表中“的账单状态”应以正常色显示为“未出款,未还款” 可用额度应为:3500




 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:信用卡还款.rar


[此贴子已经被作者于2018/1/22 16:37:09编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/22 18:00:00 [只看该作者]

单独把预期的当成一期账单处理显示出来

 

Dim dt_xyk As DataTable = DataTables("信用卡")
Dim dt_lsz As DataTable = DataTables("流水账")
Dim dt_dyyh As DataTable = DataTables("还款")
dt_dyyh.DataRows.Clear
Dim d As Date = new Date(Date.Today.Year, Date.Today.Month, 1)
Dim ds() As Date = {d, d.AddMonths(1)}
For Each dr As DataRow In dt_xyk.DataRows
    Dim ndr As DataRow = dt_dyyh.AddNew
    ndr("账户名称") = dr("账户名称")
    ndr("账单日") = d.AddDays(dr("账单日")-1)
    ndr("转出") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转出'")
    ndr("转入") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转入'")
    ndr("信用额度") = dr("信用额度")
    ndr("当月应还") = ndr("转出") - ndr("转入")
    ndr("可用额度") = ndr("信用额度") - ndr("当月应还")
    If val(dr("还款日")) < val(dr("账单日")) Then
        ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
    Else
        ndr("还款日") = d.AddDays(dr("还款日")-1)
    End If
    If ndr("当月应还") > 0 Then
        ndr("账单状态") = "逾期还款"
    End If
    ndr("账单月份") = Format(d, "yyyyMM")
Next
For Each d In ds
    For Each dr As DataRow In dt_xyk.DataRows
        Dim ndr As DataRow = dt_dyyh.AddNew
        ndr("账户名称") = dr("账户名称")
        ndr("账单日") = d.AddDays(dr("账单日")-1)
        ndr("转出") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 >= #" & ndr("账单日").addmonths(-1) & "# and 日期 <= #" & ndr("账单日") & "# and 类别 = '转出'")
        ndr("转入") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 >= #" & ndr("账单日").addmonths(-1) & "# and 日期 >= #" & ndr("账单日") & "# and 类别 = '转入'")
        Dim yq_out = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转出'")
        Dim yq_in = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转入'")
        ndr("信用额度") = dr("信用额度")
        ndr("当月应还") = ndr("转出") - ndr("转入")
        ndr("可用额度") = ndr("信用额度") - ndr("当月应还") - yq_out + yq_in
        If val(dr("还款日")) < val(dr("账单日")) Then
            ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
        Else
            ndr("还款日") = d.AddDays(dr("还款日")-1)
        End If
        If ndr("当月应还") > 0 Then
            If ndr("账单日") > Date.Today Then
                ndr("账单状态") = "未出账,没还款"
            Else
                ndr("账单状态") = "已出账,没还款"
            End If
        Else
            If ndr("账单日") > Date.Today Then
                ndr("账单状态") = "未出账,没还款"
            Else
                ndr("账单状态") = "已出账,已还款"
            End If
        End If
        ndr("账单月份") = Format(d, "yyyyMM")
    Next
Next


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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2018/1/22 18:44:00 [只看该作者]

建设银行应该还款表的账单状态应该是“已出账单,未还款”,可是现在是“逾期,未还款”

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/23 9:34:00 [只看该作者]

Dim dt_xyk As DataTable = DataTables("信用卡")
Dim dt_lsz As DataTable = DataTables("流水账")
Dim dt_dyyh As DataTable = DataTables("还款")
dt_dyyh.DataRows.Clear
Dim d As Date = new Date(Date.Today.Year, Date.Today.Month, 1)
Dim ds() As Date = {d, d.AddMonths(1)}
d = d.AddMonths(-1)
For Each dr As DataRow In dt_xyk.DataRows
    Dim ndr As DataRow = dt_dyyh.AddNew
    ndr("账户名称") = dr("账户名称")
    ndr("账单日") = d.AddDays(dr("账单日")-1)
    ndr("转出") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日") & "# and 类别 = '转出'")
    ndr("转入") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日") & "# and 类别 = '转入'")
    ndr("信用额度") = dr("信用额度")
    ndr("当月应还") = ndr("转出") - ndr("转入")
    ndr("可用额度") = ndr("信用额度") - ndr("当月应还")
    If val(dr("还款日")) < val(dr("账单日")) Then
        ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
    Else
        ndr("还款日") = d.AddDays(dr("还款日")-1)
    End If
    If ndr("当月应还") > 0 Then
        If ndr("还款日") > Date.Today Then
            ndr("账单状态") = "已出账,没还款"
        Else
            ndr("账单状态") = "已出账,逾期还款"
        End If
    End If
    ndr("账单月份") = Format(d, "yyyyMM")
Next
For Each d In ds
    For Each dr As DataRow In dt_xyk.DataRows
        Dim ndr As DataRow = dt_dyyh.AddNew
        ndr("账户名称") = dr("账户名称")
        ndr("账单日") = d.AddDays(dr("账单日")-1)
        ndr("转出") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 >= #" & ndr("账单日").addmonths(-1) & "# and 日期 <= #" & ndr("账单日") & "# and 类别 = '转出'")
        ndr("转入") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 >= #" & ndr("账单日").addmonths(-1) & "# and 日期 >= #" & ndr("账单日") & "# and 类别 = '转入'")
        Dim yq_out = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转出'")
        Dim yq_in = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转入'")
        ndr("信用额度") = dr("信用额度")
        ndr("当月应还") = ndr("转出") - ndr("转入")
        ndr("可用额度") = ndr("信用额度") - ndr("当月应还") - yq_out + yq_in
        If val(dr("还款日")) < val(dr("账单日")) Then
            ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
        Else
            ndr("还款日") = d.AddDays(dr("还款日")-1)
        End If
        If ndr("当月应还") > 0 Then
            If ndr("账单日") > Date.Today Then
                ndr("账单状态") = "未出账,没还款"
            Else
                ndr("账单状态") = "已出账,没还款"
            End If
        Else
            If ndr("账单日") > Date.Today Then
                ndr("账单状态") = "未出账,没还款"
            Else
                ndr("账单状态") = "已出账,已还款"
            End If
        End If
        ndr("账单月份") = Format(d, "yyyyMM")
    Next
Next

 


 回到顶部
总数 39 上一页 1 2 3 4