1、PrepareEdit'字典设置
Dim tb As New DropTreeBuilder
If e.Col.Name="部门ID" Then
If e.IsFocusCell Then
If e.Row("科目一级")="管理费用" Then
tb.TreeFilter="类型='后勤'"
ElseIf e.Row("科目一级")="营业费用" Then
tb.TreeFilter="类型='销售部'"
ElseIf e.Row("科目一级")="财务费用" Then
tb.TreeFilter="类型='公司整体'"
End If
tb.SourceTable = DataTables("预算部门管理") '指定目录树表
tb.TreeCols = "区域名称|部门名称" '指定用于生成目录树的列
tb.SourceCols = "ID|类型|区域名称|地区名称|部门名称" '指定数据来源列
tb.ReceiveCols = "部门ID|部门类型|区域名称|地区名称|部门名称" '指定数据接收列
Tables("预算填写").Cols("部门ID").DropTree = tb.Build()
End If
End If
2、BeforeSaveDataRow
Dim dr As DataRow = e.DataRow
If dr.Isnull("部门ID") OrElse dr.Isnull("期间") OrElse dr.Isnull("费用金额") Then
e.Cancel=True
MessageBox.show("至少要填入部门ID,期间和费用金额!","提示")
Else
If dr.RowState=DataRowState.Added Or dr.Rowstate = DataRowState.Modified Then
Dim dr1 As DataRow = DataTables("修改日志").AddNew
dr1("预算填写ID") = dr("ID")
dr1("用户ID") = _UserName
dr1("用户名称") = _UserXm
dr1("修改时间") = Date.Now
dr1("表名")= "预算填写"
dr1("列名") = "费用金额"
dr1("原数值")= dr.OriginalValue("费用金额")
dr1("现数值") =dr("费用金额")
dr1.save
End If
End If
两段代冲突,只要将光标放在用户ID列点保存,马上死机。把第一段的Messagebox拿掉就OK。求教是为什么?