Foxtable(狐表)用户栏目专家坐堂 → 7月2号版本在BeforeSort事件中设置e.Cancel = True,不能禁止排序!


  共有17062人关注过本帖树形打印复制链接

主题:7月2号版本在BeforeSort事件中设置e.Cancel = True,不能禁止排序!

帅哥哟,离线,有人找我吗?
cpayinyuan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
7月2号版本在BeforeSort事件中设置e.Cancel = True,不能禁止排序!  发帖心情 Post By:2010/7/16 16:56:00 [显示全部帖子]

如题。在BeforeSort事件中设置了代码如下:仍然不能禁止排序!(这个事件代码对主表有效,对窗口中的副本表无效!)

代码如下:

If e.Table.name="银行账_Table1"
  If e.sort<>"日期"
    e.Cancel=True
  End If
End If

 

[此贴子已经被作者于2010-7-16 16:57:14编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2010/7/16 17:21:00 [显示全部帖子]

以下是引用狐狸爸爸在2010-7-16 17:00:00的发言:

测试有效,也许你又是名字错了,这样看看你的代码有没有执行:

 

f e.Table.name="银行账_Table1"
  If e.sort<>"日期"

     messagebox.show("取消")
    e.Cancel=True
  End If
End If

   我不会每一次都把表名写错的。

 

   这次表名确实没错,但在这个事件中后面的代码确实没有执行,估计是这个事件中不识别 e.Table.name 这个参数造成的。你试一下便知是否如此了。


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2010/7/16 21:25:00 [显示全部帖子]

我的电脑中没有7月2号的试有版本,麻烦贺老师做个开发版的例子。

 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2010/7/16 22:42:00 [显示全部帖子]

折腾好一个晚上,终于找到出错的地方了:

 

    只要删除这个副本表的DoubleClick事件,就一切正常了。只要保留这个事件,这个表的禁止排序的代码就不能用!真是奇怪死了。DoubleClick事件的代码如下,请贺老师分析一下到底怎么回事:

 

Dim tt As Table=Tables("银行账_Table1")
Dim dr As Datarow=tt.current.Datarow()
If dr Is Nothing Then
    Return
End If
Tables("银行账").filter=True
Dim Index As Integer = Tables("银行账").FindRow(dr) '获得选定行在Tables("订单")中的位置
If Index >=0 Then '如果选定行在Tables("订单")中存在
    Tables("银行账").Position = Index '定位到选定行
    Forms("银行账修改").Open() '打开编辑窗口
End If

[此贴子已经被作者于2010-7-17 8:25:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2010/7/17 8:34:00 [显示全部帖子]

    经再次测试,只要窗口中的副本表的 DoubleClick事件中有内容,哪怕是只有一句无关的代码(例如:Dim i as integer),禁止排序的设置就对这个副本表无效,真是气死人了。

    希望贺老师认真检查一下,别回避软件本身的问题。我不会整天故意找事,问题肯定是存在的!


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2010/7/17 11:43:00 [显示全部帖子]

以下是引用czy在2010-7-17 11:15:00的发言:
应该是有bug了。

每一次我提出问题,贺老师总是先怀疑我自己使用不当把什么输错了,而不认真看我所说的问题,也不去查找、分析狐表本身有无问题。


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2010/7/17 14:50:00 [显示全部帖子]

以下是引用狐狸爸爸在2010-7-17 14:37:00的发言:

 

你说不能加载,我就按照你说的代码去实际测试运行,没有发现任何问题,我还应该怎么做?你又没有提供实例给我测试。

至于后来发现的bug,那是另一回事,bug任何人都没有办法预知,很多时候是可遇不可求的,你发现了,告诉我就行,我自然就会处理好的。

 

     记得6月份的版本刚增加禁止排序事件时就存在问题,我一直等待着改进版本,到了7月2号的版本仍然存在同样的问题。不仅如此,贺老师还非常自信地说7月2号的版本应该比较完善了,而且很轻松地就把某个控件取消掉了,您再改进也只能在以后的版本,我现在暂时没办法用。现在搞得进退两难!

    看来只有尽快把原来程序中的DataList彻底退休,这才是真正能解决问题的办法。


 回到顶部