以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  禁止移动行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=102308)

--  作者:peibaomin
--  发布时间:2017/6/17 0:56:00
--  禁止移动行

在修改数据未保存之前怎么代码怎么设置不允许移动到其他行


--  作者:有点蓝
--  发布时间:2017/6/17 9:04:00
--  
参考:http://www.foxtable.com/webhelp/scr/0644.htm

If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行
        Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行
        If r.DataRow.RowState <> DataRowState.Unchanged Then
            e.Cancel = True
            msgbox("请先保存")
        End If
    End If
End If

--  作者:裴保民
--  发布时间:2017/6/17 9:15:00
--  
禁止移动行的代码是‘’e.Cancel = True‘’吗?
--  作者:有点蓝
--  发布时间:2017/6/17 9:42:00
--  
2楼完整代码才是,这是一整个逻辑判断处理的过程。仅仅一句代码是没有用的
--  作者:裴保民
--  发布时间:2017/6/17 17:34:00
--  
如果点击窗体上修改按钮,因为没有绑定表,表中的数据不可能发生变化,用上面的代码不可能实现此功能,用什么方法实现只要单击修改数据按钮就执行禁止移动,直至到单击保存数据才可以恢复行的正常移动功能,请问应编写什么代码来执行此功能呀?
[此贴子已经被作者于2017/6/18 9:10:56编辑过]

--  作者:裴保民
--  发布时间:2017/6/18 9:16:00
--  
如果点击窗体上修改按钮,因为没有绑定表,表中的数据不可能发生变化,用上面的代码不可能实现此功能,用什么方法实现只要单击修改数据按钮就执行禁止移动,直至到单击保存数据才可以恢复行的正常移动功能,请问应编写什么代码来执行此功能呀?谢谢

--  作者:cbt
--  发布时间:2017/6/18 11:07:00
--  


先定义一个全局变量


Public qjkg as Boolean = false


然后 在 BeforeSelRangeChange 事件弄个 开关

if qjkg=false then

 e.Cancel=True  \'取消改变行

end if


在你那个按键  修改数据  点击事件加上  qjkg=false


保存数据 点击事件加上  qjkg=true



-------------以上只是参考,具体得自己尝试!



--  作者:peibaomin
--  发布时间:2017/6/18 16:10:00
--  

如何只限制不能移动行,在本行内字段之间是可以移动的,因为要编辑数据,否则就编辑不了数据了


--  作者:有点色
--  发布时间:2017/6/18 16:18:00
--  
If qjkg=False Then
    If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行
        e.Cancel=True  \'取消改变行
    End If 
End If