表事件
门市现金_DataColChanged
Select Case e.DataCol.Name
Case "收入","支出"
Dim dr As DataRow
Dim drs As List(of DataRow)
dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc") '找出上一行
If dr Is Nothing Then '如果没有找到上一行,说明本行就是第一行
e.DataRow("余额") = e.DataRow("收入") - e.DataRow("支出")
dr = e.DataRow
End If
drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey"), "[_SortKey]")
For i As Integer = 1 To drs.Count - 1 '重算余下行的余额
drs(i)("余额") = drs(i-1)("余额") + drs(i)("收入") - drs(i)("支出")
Next
End Select
e.DataTable.save
门市现金_DataRowAdded
e.DataRow("经手人") = _Username
门市现金_DataRowDeleting
e.DataRow("收入") = 0
e.DataRow("支出") = 0
门市现金_AfterMoveRow
Dim Key As Decimal
Dim Index As Integer
Dim dc As DataCol
Index = Math.Min(e.OldIndex, e.NewIndex)
Key = e.Table.Rows(Index)("_SortKey")
dc = e.Table.DataTable.DataCols("收入")
dc.RaiseDataColChanged("[_SortKey] >= " & Key)
门市现金_DrawCell
'If e.Col.name="收入" Then
'e.Style="收入样式"
'End If
'If e.Col.name="支出" Then
'e.Style="支出样式"
'End If
追载代码:
If DataTables("门市现金").HasChanges = False Then '已经保存
SystemReady = False
try
CurrentTable.FinishEditing
CurrentTable.save
Dim pcid As Integer = DataTables("门市现金").Compute("Max(_Identify)")
Dim Filter As String = "[_Identify] > " & pcid
DataTables("门市现金").AppendLoad(Filter, False)
DataTables("门市现金").loadpage = 0
'追加数据代码
Catch ex As Exception
MessageBox.Show("追加数据失败")
End Try
SystemReady = True
End If
If DataTables("派车记录表").HasChanges = False Then '已经保存
SystemReady = False
try
CurrentTable.FinishEditing
CurrentTable.save
Dim pcid As Integer = DataTables("派车记录表").Compute("Max(_Identify)")
Dim Filter As String = "[_Identify] > " & pcid
DataTables("派车记录表").AppendLoad(Filter, False)
DataTables("派车记录表").loadpage = 0
'追加数据代码
Catch ex As Exception
MessageBox.Show("追加数据失败")
End Try
SystemReady = True
End If
最后的结果就是只要追载了 有流水帐的表,就会引起保存 另个一个非流水帐的派车表的保存。麻烦帮我分析一下,谢谢! 以前我是用的普通流水帐代码方式。现在改成了高效的