Foxtable(狐表)用户栏目专家坐堂 → 请问狐爸,菜单导航栏中的页面,默认为:可见但不可用,代码如何写,谢谢。


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

主题:请问狐爸,菜单导航栏中的页面,默认为:可见但不可用,代码如何写,谢谢。

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


加好友 发短信
等级:幼狐 帖子:125 积分:1140 威望:0 精华:0 注册:2012/11/17 9:34:00
请问狐爸,菜单导航栏中的页面,默认为:可见但不可用,代码如何写,谢谢。  发帖心情 Post By:2019/12/27 9:21:00 [只看该作者]

请问狐爸,菜单导航栏中的页面,默认为:可见但不可用,代码如何修改,谢谢。

 

举例 :

Dim topic As WinForm.TopicBar = Forms("导航栏").Controls("TopicBar1") '希望默认全部是可见但不可用
If _Usergroup = "产品中心"  Then
    Dim tl1 As WinForm.TopicLink
    topic.Pages("产品中心").Visible = True '当用户组为产品中心时,这个页面及其下面的任务项,可见可用,其他的均为"可见但不可用"。

    topic.Pages("市场管理").Visible = True '
.... .....    
  Else If _Usergroup = "管理员"  Then
  所有菜单均可用

........ 

End If

[此贴子已经被作者于2019/12/27 9:28:17编辑过]

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/27 9:29:00 [只看该作者]

这个只能设置看见,无法设置是否可用。

或者您在点击的时候才判断是否有权限,再执行操作的代码。

个人理解,不能用的东西就没有必要给用户看到。不然用户会闹心的

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


加好友 发短信
等级:幼狐 帖子:125 积分:1140 威望:0 精华:0 注册:2012/11/17 9:34:00
  发帖心情 Post By:2019/12/27 9:39:00 [只看该作者]

也是,谢谢您,请教您;
1、那如何设置成:默认为全部不可见。因为菜单项较多,反向根据用户权限请定成可见,更容易些,

2、根据客户权限,可见的菜单及其任务项,只加载对应的表,能不能在此处实现。

[此贴子已经被作者于2019/12/27 9:43:28编辑过]

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/27 9:53:00 [只看该作者]

1、可以建一个权限表,存储哪些用户可以看哪些菜单,然后查询这个用户可以使用的菜单,动态创建菜单
2、可以设置为一开始全部不加载表,在点击菜单的时候再加载表,加载后再打开窗口

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


加好友 发短信
等级:幼狐 帖子:125 积分:1140 威望:0 精华:0 注册:2012/11/17 9:34:00
  发帖心情 Post By:2019/12/27 10:03:00 [只看该作者]

谢谢您,谢谢您,权限表,我会些,

动态创建菜单,我不会。(不好意思,使用狐表已过十年,只是部门自用,这次是为全公司搞,要求把各部门所有的表项集中在一个项目里管理和查阅,头都大了)

 

您能不能给个案例,我学习一下

[此贴子已经被作者于2019/12/27 10:03:18编辑过]

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/27 10:29:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/0842.htmhttp://www.foxtable.com/webhelp/topics/0860.htm

Dim tp As WinForm.TopicBar = Forms("窗口1").Controls("TopicBar1")
For Each s As String In DataTables("权限表").GetValues("导航页","用户='" & user.Name & "'")
    Dim p As WinForm.TopicPage = tp.Pages.Add(s,s)
    For Each s2 As String In DataTables("权限表").GetValues("导航链接","用户='" & user.Name & "' and 导航页='" & s & "'")
        p.Links.Add(s2,s2)
    Next
Next

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


加好友 发短信
等级:幼狐 帖子:125 积分:1140 威望:0 精华:0 注册:2012/11/17 9:34:00
  发帖心情 Post By:2019/12/27 15:59:00 [只看该作者]

万分感谢,谢谢。

1、可以建一个权限表,存储哪些用户可以看哪些菜单,然后查询这个用户可以使用的菜单,动态创建菜单

这第一项我做出来。谢谢。

 

2、可以设置为一开始全部不加载表,在点击菜单的时候再加载表,加载后再打开窗口
这第二项,试着做,没做成,麻烦您,也帮我写一下案例。。。
 
 
万分感谢,万分感谢。
 
还有一点,我这项目里,肯定会超过100个表以上,用户(我是部门名建的第一项),也有近20个部门,以此类推,这权限表,要有成百上千行的,(想想头都大了,)请问蓝老师有无更好的方法。

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/27 16:13:00 [只看该作者]


 回到顶部