Foxtable(狐表)用户栏目专家坐堂 → 求助:信用卡可用额度计算问题


  共有2279人关注过本帖平板打印复制链接

主题:求助:信用卡可用额度计算问题

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求助:信用卡可用额度计算问题  发帖心情 Post By:2016/10/29 22:52:00 [只看该作者]

信用卡可用额度计算
当前一行的时候是:
收入—支出=余额
可用额度=额度+余额

不知道这样的设计是否符合逻辑啊?
但是怎么计算多行数据呢?多行数据的时候 额度是不是要累加呢?然后再加余额呢?

图片点击可在新窗口打开查看此主题相关图片如下:11111.png
图片点击可在新窗口打开查看
上述有一个不合理的地方
支出不应该大于当前可用余额,但是结果却出现了多次大于的情况,求解!

当前表事件代码如下:
Select Case e.DataCol.Name
    Case "余额"
        If e.DataRow("银行卡类别")="信用卡" Then
            e.DataRow("可用额度")=e.DataRow("额度")+e.DataRow("余额")
            If e.DataRow("可用额度")<0 Then
                MessageBox.Show("当前透支" & e.DataRow("可用额度") & "元")
            End If
        End If
        '(e.DataRow("收入")+e.DataRow("支出")))
    Case "收入","支出","银行卡卡号"
        
        Dim drs As List(of DataRow)
        Dim Filter As String
        Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & "And [银行卡卡号] = '" & e.DataRow("银行卡卡号") & "'"
        drs = e.DataTable.Select(Filter)
        For Each dr As DataRow In drs
            Filter = "[_SortKey] <= " & dr("_SortKey") & " And [银行卡卡号] = '" & e.DataRow("银行卡卡号") & "'"
            Dim Val1 As Double = e.DataTable.Compute("Sum(收入)",Filter)
            Dim Val2 As Double = e.DataTable.Compute("Sum(支出)",Filter)
            dr("余额") = Val1 - Val2
        Next
        If e.DataCol.Name = "银行卡卡号" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            Filter = "[_SortKey] > " & e.DataRow("_SortKey") & " And [银行卡卡号] = '" & e.OldValue & "'"
            drs = e.DataTable.Select(Filter)
            For Each dr As DataRow In drs
                Filter = "[_SortKey] <= " & dr("_SortKey") & " And [银行卡卡号]= '" & e.DataRow("银行卡卡号") & "'"
                Dim Val1 As Double = e.DataTable.Compute("Sum(收入)",Filter)
                Dim Val2 As Double = e.DataTable.Compute("Sum(支出)",Filter)
                dr("余额") = Val1 - Val2
            Next
        End If
End Select

烦请各位老师多多指导啊 谢谢先!
[此贴子已经被作者于2016/10/31 16:49:43编辑过]

 回到顶部