以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]本行未保存前 不允许离开此行?【已解决】  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=29500)

--  作者:gsnake
--  发布时间:2013/3/7 22:27:00
--  [求助]本行未保存前 不允许离开此行?【已解决】
我不是说的传统的编辑方式,而是FOXTABLE的表格模式中!!  我编辑一行后,不保存或撤销的话就不能将光标移开这一行!

在表事件 中用哪个事件,代码怎么写啊!!

像 会员管理系统的例子!!会员表限制了“会员姓名” “性别”不能为空  但我移一下行,只要移到姓名和性别不为空的行照样保存 !限制就没有意义了!!
图片点击可在新窗口打开查看此主题相关图片如下:未命名.bmp
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-5-16 11:36:15编辑过]

--  作者:y2287958
--  发布时间:2013/3/8 6:28:00
--  

示例二

如果没有输入编号列内容,则禁止选择其它行
 

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.IsNull("编号") Then \'如果编号为空
e.Cancel = True
End If
End If
End
If


--  作者:unverse
--  发布时间:2013/3/8 9:52:00
--  

beforeselrangechange事件中。添加 。以上代码就可以了,具体列再自己添加就可以了。


--  作者:狐狸爸爸
--  发布时间:2013/3/8 10:04:00
--  

也可以看看这个:

http://www.foxtable.com/help/topics/2263.htm

 


--  作者:gsnake
--  发布时间:2013/3/8 11:19:00
--  
谢谢各位大师!解决了!放上代码,以便大家研究!
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) \'获得原来选择的行
        Dim nms() As String={"会员姓名","手机号码","性别"}
        For Each nm As String In nms
            If r.Isnull(nm) Then  
                e.cancel=True        \'为空就取消操作
                messagebox.show(nm & "必须输入内容")
                Return
            Else
                r.Save()      ’满足条件,保存
            End If
        Next
        
    End If
End If