Foxtable(狐表)用户栏目专家坐堂 → 关于设置信用卡还款日


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

主题:关于设置信用卡还款日

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


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

如果是账单日后多少天还款可以计算,如果固定每月的多少号还款怎么计算呢?
目前有两列“账单日”和“还款日”都是字符型数据,前者是哪一天的账单日是固定的、后者是账单日后多少天和固定哪一天还款,后来发现后者不对一个列不能同时表示固定日期和多少天后的日期,请老师指点,两个都是字符型无法计算。还有就是账单日列无法设计成日期型因为还款日都是固定每个月哪一天的,不可能将日期固定到那一年和那一个月的因为他是指的每一年和每一个月都有的。
[此贴子已经被作者于2018/1/23 10:00:21编辑过]

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


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

以下是引用裴保民在2018/1/23 9:34:00的发言:
如果是账单日后多少天还款可以计算,如果固定每月的多少号还款怎么计算呢?

 

不需要计算。直接填写还款日就好了啊


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


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

目前有两列“账单日”和“还款日”都是字符型数据,前者是哪一天的账单日是固定的、后者是账单日后多少天和固定哪一天还款,后来发现后者不对一个列不能同时表示固定日期和多少天后的日期,请老师指点,两个都是字符型无法计算。还有就是账单日列无法设计成日期型因为还款日都是固定每个月哪一天的,不可能将日期固定到那一年和那一个月的因为他是指的每一年和每一个月都有的。
[此贴子已经被作者于2018/1/23 10:10:56编辑过]

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


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

表结构

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180123101752.png
图片点击可在新窗口打开查看
  

 

代码

 

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 dr.IsNull("还款日") OrElse dr.IsNull("n日后还款") = False Then
        ndr("还款日") = cdate(ndr("账单日")).AddDays(dr("n日后还款"))
    Else
        If val(dr("还款日")) < val(dr("账单日")) Then
            ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
        Else
            ndr("还款日") = d.AddDays(dr("还款日")-1)
        End If
    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 dr.IsNull("还款日") OrElse dr.IsNull("n日后还款") = False Then
            ndr("还款日") = cdate(ndr("账单日")).AddDays(dr("n日后还款"))
        Else
            If val(dr("还款日")) < val(dr("账单日")) Then
                ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
            Else
                ndr("还款日") = d.AddDays(dr("还款日")-1)
            End If
        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


 


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


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

甜老师如果把“n日后还款”列改为“固定还款日”逻辑字符是不是更好呢?

由“固定还款日”的值来决定“还款日”的值代表是固定日期还是代表账单后多少天
[此贴子已经被作者于2018/1/23 17:37:20编辑过]

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


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

列名,类型,你改成什么随意。只要你代码对应即可。


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


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


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


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


光大银行的还款日期不对(他不是固定日期,是账单后15天作为还款日)应该每月的25号往后延续15是他的还款日
代码如下:

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 dr.IsNull("还款日") OrElse dr.IsNull("固定还款日") = True Then
        ndr("还款日") = cdate(ndr("账单日")).AddDays(dr("还款日"))
    Else
        If val(dr("还款日")) < val(dr("账单日")) Then
            ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
        Else
            ndr("还款日") = d.AddDays(dr("还款日")-1)
        End If
    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 dr.IsNull("还款日") OrElse dr.IsNull("固定还款日") = True Then
            ndr("还款日") = cdate(ndr("账单日")).AddDays(dr("还款日"))
        Else
            If val(dr("还款日")) < val(dr("账单日")) Then
                ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
            Else
                ndr("还款日") = d.AddDays(dr("还款日")-1)
            End If
        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


e.Form.Controls("Table1").Table.DataSource = DataTables("还款")
e.Form.Controls("Table1").Table.Filter = "当月应还> 0"


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:信用卡还款 - 副本 (2).rar


[此贴子已经被作者于2018/1/23 18:29:55编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105905 积分:538588 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/23 21:25:00 [只看该作者]

If dr("固定还款日") = True Then
    ndr("还款日") = cdate(ndr("账单日")).AddDays(val(dr("还款日")))
Else
    If val(dr("还款日")) < val(dr("账单日")) Then
        ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
    Else
        ndr("还款日") = d.AddDays(dr("还款日")-1)
    End If
End If

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


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

(1)还款日不对:比如中信信用卡2018年1月12日转出的钱,不应该2018年1月15日还款,应2018年2月15日还款才对呢 ,好像所有的账单月都不对,都少一月
(1)账单月也不对:比如中信信用卡和建设银行应该201802,不应该是201801,好像所有的账单月都不对,都少一月

图片点击可在新窗口打开查看此主题相关图片如下:还款日.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/1/24 1:14:42编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/24 9:21: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 dr("固定还款日") = True Then
        ndr("还款日") = cdate(ndr("账单日")).AddDays(dr("还款日"))
    Else
        If val(dr("还款日")) < val(dr("账单日")) Then
            ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
        Else
            ndr("还款日") = d.AddDays(dr("还款日")-1)
        End If
    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 dr("固定还款日") = True Then
            ndr("还款日") = cdate(ndr("账单日")).AddDays(dr("还款日"))
        Else
            If val(dr("还款日")) < val(dr("账单日")) Then
                ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
            Else
                ndr("还款日") = d.AddDays(dr("还款日")-1)
            End If
        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

 回到顶部
总数 53 上一页 1 2 3 4 5 6 下一页