信用卡可用额度计算
当前一行的时候是:
收入—支出=余额
可用额度=额度+余额
不知道这样的设计是否符合逻辑啊?
但是怎么计算多行数据呢?多行数据的时候 额度是不是要累加呢?然后再加余额呢?
此主题相关图片如下: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编辑过]