以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码冲突,求解决!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89793)

--  作者:zhy400137
--  发布时间:2016/8/30 9:55:00
--  代码冲突,求解决!
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。求教是为什么?

--  作者:zhy400137
--  发布时间:2016/8/30 9:56:00
--  
第一段的
If e.Col.Name="部门ID" Then   
    If e.IsFocusCell Then
这两句IF位置互换前,不放在用户ID列也死机,互换后放在ID死机。

--  作者:zhy400137
--  发布时间:2016/8/30 10:03:00
--  
保存按钮的代码,只是简单的tables("预算填写").save
--  作者:zhy400137
--  发布时间:2016/8/30 10:04:00
--  
昨天折腾了半天,请老师帮看看,谢谢!
--  作者:zhy400137
--  发布时间:2016/8/30 10:18:00
--  
2楼问题是自己误看,但确是只要放在弹出树型控件的客户ID,一点保存就死机!
--  作者:cbt
--  发布时间:2016/8/30 10:21:00
--  
 MessageBox.show("至少要填入部门ID,期间和费用金额!","提示")
return

--  作者:zhy400137
--  发布时间:2016/8/30 10:25:00
--  
谢谢楼上,但加了也不行,一点就死机!
--  作者:zhy400137
--  发布时间:2016/8/30 10:28:00
--  
把1段中的 MessageBox.show("至少要填入部门ID,期间和费用金额!","提示")拿了就不死机了,但这个提示是必要的。
--  作者:Hyphen
--  发布时间:2016/8/30 10:48:00
--  
PrepareEdit代码放到StartEdit
--  作者:zhy400137
--  发布时间:2016/8/30 10:57:00
--  
可以了,但原因大约是什么,谢谢老师!