以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]新增行时项目自动关闭?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=82887)

--  作者:twef
--  发布时间:2016/3/26 21:21:00
--  [求助]新增行时项目自动关闭?
新增行时项目自动关闭?
问题出在全局表事件beforeselchange代码,不知道哪里错在哪里?
If e.NewRange.RowSel < 0 Then
    vars("del") = True
End If
If e.NewRange.RowSel >= 0 AndAlso vars("del") = False AndAlso e.Table.current IsNot Nothing  AndAlso e.Table.current.DataRow.RowState <> DataRowState.Unchanged AndAlso vars("add") = False Then
    If e.NewRange.RowSel <> e.OldRange.RowSel Then
        e.Cancel=True
        MessageBox.Show("当前行数据已被修改 请先保存数据再换行", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
    End If
End If
vars("add")=False
[此贴子已经被作者于2016/3/27 8:22:48编辑过]

--  作者:Hyphen
--  发布时间:2016/3/27 10:20:00
--  
测试没有问题,看看是不是和新增行的事件代码有冲突
--  作者:大红袍
--  发布时间:2016/3/27 11:02:00
--  
请,做例子,上传上来测试。
--  作者:twef
--  发布时间:2016/3/27 12:13:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:公章登记.zip
我把红色字体部分的代码去掉后,一切正常,麻烦大红袍老师看一下问题出在哪里?
[此贴子已经被作者于2016/3/27 12:15:09编辑过]

--  作者:大红袍
--  发布时间:2016/3/27 12:59:00
--  
If e.NewRange.RowSel < 0 Then
    vars("del") = True
End If
If e.Table.rows.count > 1 AndAlso e.NewRange.RowSel >= 0 AndAlso vars("del") = False AndAlso e.Table.current IsNot Nothing  AndAlso e.Table.current.DataRow.RowState <> DataRowState.Unchanged AndAlso vars("add") = False Then
    If e.NewRange.RowSel <> e.OldRange.RowSel Then
        e.Cancel=True
        MessageBox.Show("当前行数据已被修改 请先保存数据再换行", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
    End If
End If
vars("add")=False