Foxtable(狐表)用户栏目专家坐堂 → [求助]关于快捷菜单显示问题


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

主题:[求助]关于快捷菜单显示问题

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
[求助]关于快捷菜单显示问题  发帖心情 Post By:2014/9/23 15:38:00 [只看该作者]

在cell-RowMean的Popup事件中加入以下,本意是有_SortKey或者_Locked列存在即显示菜单,但是实际过程中,无论有没有_Locked列都会显示,并且同步行灰色。在原始的系统菜单上修改的,是不是哪里还有代码控制了?以下代码可以如何修改?
表都是窗口表,肯定有很多是不包括_Locked列的

With e.CommandMenu
    Dim ssdt As System.Data.DataTable = CurrentTable.DataTable.BaseTable
    Dim bln As Boolean
    bln = ssdt.Columns.Contains("_SortKey")
    .Items("MoveUp").Visible = bln
    .Items("MoveDown").Visible = bln
    bln = ssdt.Columns.contains("_Locked")
    .Items("Lock").Visible =  bln
    .Items("UnLock").Visible = bln
    .Items("Load").Visible = bln
    bln = False
    .Items("Add").Visible = bln
    .Items("Insert").Visible = bln
    .Items("Delete").Visible = bln
    .Items("Clone").Visible = bln
    '.Items("Load").Visible = bln

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


[此贴子已经被作者于2014-9-23 16:18:54编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/9/23 15:49:00 [只看该作者]

请上例子

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/23 15:49:00 [只看该作者]

 测试了一下,控制有效。

 

 单元格的,写在cell;最左边序号列的,写在row


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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/9/23 16:20:00 [只看该作者]

上传测试文件,表C删除了两个标志列,但还是在cell中显示

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/23 16:23:00 [只看该作者]

 代码没有问题啊,控制正常

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/9/23 16:31:00 [只看该作者]

以下是引用有点甜在2014-9-23 16:23:00的发言:
 代码没有问题啊,控制正常
。。。这不可能啊。难道是版本问题?我是2014.09.01的版本
你表C中的cell-row中显示的是没有功能吗?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/23 16:48:00 [只看该作者]

 再测试了一下,无法从当前表 currentTable 获取得到,此表是否包含 _Locked 列,必须结合sql语句,查找列才知道是否存在。

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/9/23 17:03:00 [只看该作者]

以下是引用有点甜在2014-9-23 16:48:00的发言:
 再测试了一下,无法从当前表 currentTable 获取得到,此表是否包含 _Locked 列,必须结合sql语句,查找列才知道是否存在。
这个找不到有点莫名其妙,如此简单的问题不想用SQL去查询。用CurrentTable.Grid也是判断不了,需要官方给个确实的答案,或者解决方案。这完全是个小问题额

[此贴子已经被作者于2014-9-23 17:03:59编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/23 17:33:00 [只看该作者]

 目前来说,想不到好的方法了,只能这样搞一下

 

Dim Builder As New ADOXBuilder
Dim flag As Boolean = True
try
    Builder.Open() '打开ADOXBuilder
    With Builder.Tables(CurrentTable.Name)
        .RenameColumn("_Locked","_Temp")
        .RenameColumn("_Temp","_Locked")
    End With
catch ex As exception
    flag = False
End try
Builder.Close() '关闭ADOXBuilder

msgbox("是否存在 : " & flag)


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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/9/23 17:58:00 [只看该作者]

甜版给反馈下呗。
还好最初在命名的时候留下规则,暂时可以应付下这个问题。不过还是希望能从根源解决

 回到顶部