Foxtable(狐表)用户栏目专家坐堂 → [求助]请教快捷菜单(右键菜单)问题


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

主题:[求助]请教快捷菜单(右键菜单)问题

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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
[求助]请教快捷菜单(右键菜单)问题  发帖心情 Post By:2018/10/28 9:34:00 [只看该作者]

各位老师,正在做一个人事管理项目,在职人员和离职人员的信息都在同一个“人员信息表”上,通过判断“任职状态”列是“在职”或“离职”,用按钮分别实现在职或离职人员的显示或隐藏。我的问题是,在设计右键快捷菜单时,怎么根据“在职”或“离职”使右键显示不同的快捷菜单。下面是我在表事件BeforeShowContextMenu中写的代码,但是不能用,请问该怎么写,请指教

If DataTables(" 人员信息表").datacols("任职状态") = "在职"
    e.ContextMenu = ContextMenus("在职右键菜单")
Else
    e.ContextMenu = ContextMenus("离职右键菜单")
End If

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


加好友 发短信
等级:狐神 帖子:4649 积分:33907 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2018/10/28 9:47:00 [只看该作者]

If e.Table.Current("任职状态") = "在职"
    e.ContextMenu = ContextMenus("在职右键菜单")
Else
    e.ContextMenu = ContextMenus("离职右键菜单")
End If

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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/10/28 9:54:00 [只看该作者]

问题解决了,感谢y2287958老师!点赞图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/10/28 10:16:00 [只看该作者]

y2287958老师,抱歉,又有一个问题,在人员信息表为空时,单击右键会报错,我加了下面的判断,可是仍然报错

If e.Table.Current("任职状态") = "在职"    '----如果任职状态列内容为在职
    If Tables("人员信息表").Rows.Count = 0 Then    '---如果是空表

    Else   
        e.ContextMenu = ContextMenus("在职右键菜单")    '---显示在职右键菜单
    End If
Else   
    If Tables("人员信息表").Rows.Count = 0 Then    '---如果是空表
        
    Else  
        e.ContextMenu = ContextMenus("离职右键菜单")
    End If
End If
[此贴子已经被作者于2018/10/28 10:16:38编辑过]

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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/10/28 10:31:00 [只看该作者]

问题解决了,把上面的代码调整了一下:

If Tables("人员信息表").Rows.Count = 0 Then    '---如果是空表
   msgbox("空表不能使用右键菜单!") '---给出一个提示
Else   
    If e.Table.Current("任职状态") = "在职"    '----如果任职状态列内容为在职
        e.ContextMenu = ContextMenus("在职右键菜单")    '---显示在职右键菜单
    Else   
        e.ContextMenu = ContextMenus("离职右键菜单")
    End If
End If

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


加好友 发短信
等级:狐神 帖子:4649 积分:33907 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2018/10/28 10:52:00 [只看该作者]

If e.Table.Current IsNot Nothing
    If e.Table.Current("任职状态") = "在职"  
        e.ContextMenu = ContextMenus("在职右键菜单")
    Else
        e.ContextMenu = ContextMenus("离职右键菜单")
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/10/28 11:42:00 [只看该作者]

还是y2287958老师的代码简洁好用,谢谢指教!
[此贴子已经被作者于2018/10/28 11:42:38编辑过]

 回到顶部