我在全局表的AfterSaveDataRow中输入代码:
Dim strPrj As String
Dim dr As DataRow
Dim strOp As String, strInfo As String
Dim blValible As Boolean = False
'如果保存失败,给出提示后退出
If e.Success = False Then
MessageBox.Show(e.DataTable.Name & "保存失败!")
Return
End If
Select Case e.StatementType
Case 0'新增
strOp = "增加"
Case 1'修改
strOp = "修改"
Case 2'删除
strOp = "删除"
End Select
Select Case e.DataTable.Name
Case "合同表"
strInfo = strOp & "合同:" & e.DataRow("合同编号")
blValible = True
Case "价格表"
strInfo = strOp & "合同明细:" & e.DataRow("合同编号") & e.DataRow("名称")
blValible = True
Case "设备材料表"
strInfo = strOp & "设备材料:" & e.DataRow("名称") & "在项目" & e.DataRow("项目编号") & "中"
blValible = True
End Select
If blValible Then
Dim r As Row = Tables("日志表").AddNew()
r("时间") = Date.Now()
r("操作者") = _UserName
r("操作类别") = strOp & "记录"
r("操作对象") = e.DataTable.Name
r("操作描述") = strInfo
End If
发现增加和修改都能正常执行,唯有删除时没有进入本事件,
查了增加、编辑、及删除的代码,增加和编辑中都调用了 .current.Save(),唯独删除代码仅调用了.current.delete(), 没有 .current.Save(),但是即使增加这一句进去发现也没有触发AfterSaveDataRow事件。
在帮助文件中,AfterSaveDataRow事件中的e参数StatementType:整数型,表示数据行在保存前的状态,0表示新增行,1表示修改行,2表示删除行。
请问如果是删除行,又怎么保存该DataRow?或者说删除行后要怎么触发AfterSaveDataRow事件?