我正在使用绑定到数据源的 DevExpress xtragrid ......一切都很好。我添加了 1 个未绑定的列(余额)来保存计算结果。当网格中任何地方的借方和/或贷方列发生变化时,“余额”列必须重新计算。鉴于可能有大量记录,我希望循环语句不是我唯一的选择。相反,我希望使用表达式编辑器找到解决方案。
例子:
dr cr balance
100 0 100
0 50 50
0 45 5
我正在使用绑定到数据源的 DevExpress xtragrid ......一切都很好。我添加了 1 个未绑定的列(余额)来保存计算结果。当网格中任何地方的借方和/或贷方列发生变化时,“余额”列必须重新计算。鉴于可能有大量记录,我希望循环语句不是我唯一的选择。相反,我希望使用表达式编辑器找到解决方案。
例子:
dr cr balance
100 0 100
0 50 50
0 45 5
将以下事件添加到网格的表单中。代码在 VB.NET 中,但应该很容易转换为任何语言
Private Sub gridView_CustomUnboundColumnData(sender As System.Object, e As DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs) Handles
gvCash.CustomUnboundColumnData
Dim view = DirectCast(sender, GridView)
If e.Column.FieldName = "colRunningBalance" And e.IsGetData Then
Dim total = 0D
For i As Integer = -1 To e.ListSourceRowIndex - 1
total += CDec(view.GetListSourceRowCellValue(i + 1, "Amount"))
Next
e.Value = total
End If
End Sub