以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]切换行问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12470)

--  作者:jxjzj2000
--  发布时间:2011/9/4 17:46:00
--  [求助]切换行问题

在beforeselchange中写入如下代码

 

If e.Table.Current.locked = False  \'如果当前行未锁定
    If e.NewRange.RowSel <> e.OldRange.RowSel Then \'而且即将选择另一行
        e.Cancel = True \'那么取消操作
        MessageBox.Show("请先保存当前客户信息!", "提示")
    End If
End If

 

为什么增加行的时候,会跳出对话框  "请先保存当前客户信息!"  ?

是不是哪里错了?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table


--  作者:czy
--  发布时间:2011/9/4 18:13:00
--  
增加行后重新选择了单元格,出现提示应该正常的吧。
--  作者:jxjzj2000
--  发布时间:2011/9/4 18:57:00
--  

我想要的效果是:离开选择的行后,如果行没有被锁定,则提示,并且取消操作,

按照以上代码,这个效果是可以实现,但是增加行后也出现提示,很郁闷,

有什么方法可以实现上面效果,并且增加行后不出现提示呢


--  作者:布莱克朱
--  发布时间:2011/9/4 19:15:00
--  

没有测试:

 

    If e.NewRange.RowSel <> e.OldRange.RowSel AndAlso e.Table.Current.locked = FalseThen \'而且即将选择另一行并且没有锁定

        MessageBox.Show("请先保存当前客户信息!", "提示")
        e.Cancel = True \'
    End If


--  作者:jxjzj2000
--  发布时间:2011/9/4 19:46:00
--  
还是不行,同样的问题,而且当删除行的时候,提示这个代码错误
--  作者:blackzhu
--  发布时间:2011/9/5 7:39:00
--  
昨日我也糊涂了,你这个代码,只要一离开单元格就会提示的.

If e.Table.Current.locked = False  \'如果当前行未锁定
    If e.NewRange.RowSel <> e.OldRange.RowSel Then \'而且即将选择另一行
        e.Cancel = True \'那么取消操作
        MessageBox.Show("请先保存当前客户信息!", "提示")
Else
 代码    
    End If
End If

--  作者:jxjzj2000
--  发布时间:2011/9/5 8:46:00
--  
blackzhu大神,还是不明白哦,加个else  ,代码写什么呢,没明白
--  作者:狐狸爸爸
--  发布时间:2011/9/5 9:10:00
--  

在BeforeAddDataRow事件中再加上一个判断吧:

 

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

 


--  作者:jxjzj2000
--  发布时间:2011/9/5 9:25:00
--  

出现错误原因我不知道啊关键是,增加行的时候,应该自动选中所增加的行,自然,需要切换单元格并且换行,如果增加前的行已经锁定了,那么切换单元格应该是不会跳出对话框的。

但是,事实却是和我们想得不同,难道哪里思路错了吗?


--  作者:狐狸爸爸
--  发布时间:2011/9/5 9:30:00
--  

你没有错,程序也没有错,添加行后,系统的当前行已经是新添加的行,表的位置和当前行并非使用同步的,有一个先后顺序。

问题比较复杂,无需深究。