以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 7月2号版本在BeforeSort事件中设置e.Cancel = True,不能禁止排序! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=7615) |
||||
-- 作者:cpayinyuan -- 发布时间:2010/7/16 16:56:00 -- 7月2号版本在BeforeSort事件中设置e.Cancel = True,不能禁止排序! 如题。在BeforeSort事件中设置了代码如下:仍然不能禁止排序!(这个事件代码对主表有效,对窗口中的副本表无效!) 代码如下: If e.Table.name="银行账_Table1"
[此贴子已经被作者于2010-7-16 16:57:14编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/7/16 17:00:00 -- 测试有效,也许你又是名字错了,这样看看你的代码有没有执行:
f e.Table.name="银行账_Table1" messagebox.show("取消") |
||||
-- 作者:cpayinyuan -- 发布时间:2010/7/16 17:21:00 -- 以下是引用狐狸爸爸在2010-7-16 17:00:00的发言:
测试有效,也许你又是名字错了,这样看看你的代码有没有执行:
f e.Table.name="银行账_Table1" messagebox.show("取消") 我不会每一次都把表名写错的。
这次表名确实没错,但在这个事件中后面的代码确实没有执行,估计是这个事件中不识别 e.Table.name 这个参数造成的。你试一下便知是否如此了。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/7/16 17:36:00 -- 我和你说,这样的问题是不可能存在的。 绝对是名称错了。 么MessageBox检查e.table.Name和e.Sort的值 [此贴子已经被作者于2010-7-16 17:38:36编辑过]
|
||||
-- 作者:cpayinyuan -- 发布时间:2010/7/16 17:45:00 -- 以下是引用狐狸爸爸在2010-7-16 17:36:00的发言:
我和你说,这样的问题是不可能存在的。 绝对是名称错了。 么MessageBox检查e.table.Name和e.Sort的值 [此贴子已经被作者于2010-7-16 17:38:36编辑过] 什么也不会显示。而且,即使这个事件中,不加表名判断条件(这样你不会说我表名写错了),窗口中的副本表重排序时也根本不会执行任何代码。
据我观察,窗口中的副本表,重排序时,根本不会激发 表的 BeforeSort事件!!!!所以,这个事件的任何代码都不会执行! 我不是每一次都来捣乱的,还是请贺老师认真试一下再说。我再重复一遍问题,是窗口中的副本表,不是主表。
[此贴子已经被作者于2010-7-16 17:46:45编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/7/16 17:53:00 --
|
||||
-- 作者:mr725 -- 发布时间:2010/7/16 18:26:00 -- 是的,除第二列,其他列都不能排序··· 但是: 窗口中table的第二列只能排序一次呢。 再次排序就不灵了? |
||||
-- 作者:cpayinyuan -- 发布时间:2010/7/16 21:25:00 -- 我的电脑中没有7月2号的试有版本,麻烦贺老师做个开发版的例子。 |
||||
-- 作者:cpayinyuan -- 发布时间:2010/7/16 22:42:00 -- 折腾好一个晚上,终于找到出错的地方了:
只要删除这个副本表的DoubleClick事件,就一切正常了。只要保留这个事件,这个表的禁止排序的代码就不能用!真是奇怪死了。DoubleClick事件的代码如下,请贺老师分析一下到底怎么回事:
Dim tt As Table=Tables("银行账_Table1") [此贴子已经被作者于2010-7-17 8:25:02编辑过]
|
||||
-- 作者:cpayinyuan -- 发布时间:2010/7/17 8:34:00 -- 经再次测试,只要窗口中的副本表的 DoubleClick事件中有内容,哪怕是只有一句无关的代码(例如:Dim i as integer),禁止排序的设置就对这个副本表无效,真是气死人了。 希望贺老师认真检查一下,别回避软件本身的问题。我不会整天故意找事,问题肯定是存在的! |