Foxtable(狐表)用户栏目专家坐堂 → 窗口中的Table,如何禁用 “Ctrl+鼠标单击表头”排序的功能?


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

主题:窗口中的Table,如何禁用 “Ctrl+鼠标单击表头”排序的功能?

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/9 8:49:00 [显示全部帖子]

以下是引用cpayinyuan在2010-6-9 8:42:00的发言:
   贺老师怎么只顾忙着讨论加密狗的贴子,对使用中遇到的这个难题却顾不上回答呢?

 

其实10楼已经有人告诉你答案了。


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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/9 9:02:00 [显示全部帖子]

那就没有别的办法了

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/9 9:11:00 [显示全部帖子]

用排序做流水账是乱来的,具体参考帮助中的流水账的例子。

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/9 9:34:00 [显示全部帖子]

没有插入行一样设计流水账,就用_Identify列,而且不受排序影响。

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/9 9:49:00 [显示全部帖子]

我在告诉你正确的方法,你自己想得太多。

 

你可以同时根据日期和_Identify设计流水账,日期优先,_identify次之。

 

在没有插入行功能的时候,就是这么处理的。

 

真正的流水账,就是不应该因为用户的排序,而影响计算结果。

 

排序是日常操作,我需要偶尔按产品或客户排序,查看订单,有何不可?看完了,我取消排序或者重新按照日期排序,不行吗?

[此贴子已经被作者于2010-6-9 9:53:35编辑过]

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/9 9:56:00 [显示全部帖子]

你没看到我20楼后面还有一段话吗?

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/9 10:08:00 [显示全部帖子]

你可以自己禁止排序,SystemIdle事件:

 

If Tables("XXX").Sort <> "日期"  Then

   Tables("XXX").Sort = "日期"

End If

 

这样XXX表永远按照日期排序。

 


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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/9 10:23:00 [显示全部帖子]

24楼代码对效率没有任何影响。


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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/9 10:44:00 [显示全部帖子]

单单禁止某几个Table也是很灵活的,还是SystemIdle事件。

 

例如:

 

For Each t As Table In Tables

     Select Case t.Name

        Case  "窗口1_Table1","窗口2_Table2{", "表A"  '这些表始终按日期排序

            If t.Sort <> "日期" Then

                   t.Sort = "日期"

            End If

        Case  "窗口1_Table2","窗口3_Table1“, "表B"  '这些表始终不排序

            If t.Sort > "" Then

                   t.Sort = ""

            End If

    End Select

Next

[此贴子已经被作者于2010-6-9 10:44:26编辑过]

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/9 12:47:00 [显示全部帖子]

其实保留Ctrl + 单击是无所谓的:

 

1、你不告诉用户,用户也不知道有这个功能

2、而且和直接单击排序不同,Ctrl + 单击是不可能误操作的。

3、用户也许会确有需要根据客户或产品顺序查看订单的时候,保留这个“隐藏”的排序功能,用户会觉得你更“人性化”。

4、排序又不是不可撤销和还原的,告诉用户,确实需要按其他列查看的时候,可以Ctrl+单击排序,完了之后重新按日期排序,流水账会看起来舒服点,或者你做个还原按钮也行。

5、人是有学习能力的,软件灵活点也许更好。


 回到顶部
总数 13 1 2 下一页