Foxtable(狐表)用户栏目专家坐堂 → 导航栏怎么授权


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

主题:导航栏怎么授权

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
导航栏怎么授权  发帖心情 Post By:2020/4/2 14:43:00 [只看该作者]

老师,我有一导航窗口,通过导航窗口的每一个节点打开切换各个表,现在需要授权给不同的人,让不同的人打开导航栏看到的是不一样的,打开后看到的表也不一样。比如导航栏有工程板块,有财务板块,有销售板块。比如工程板块的人打开项目后可能看不到财务板块的某些节点,也就打不开相应的表。
无论是用“让不同用户处理不同的表”

例如在项目事件AfteOpenProject事件中设置代码:

Select Case User.Name
   
Case "张三","李四"
       
Tables("表A").Visible = False
    Case
"王五"
       
Tables("表B").Visible = False
End
Select

还是用“可视化授权的实现”

Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If
User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "'" )
        If
dr.IsNull("列名")
Then
       
    Tables(dr("表名")).Visible = Not dr("不可见")
            Tables
(dr("表名")).AllowEdit = Not dr("不可编辑")

        Else
           
Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables
(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑")
        End
If
    Next
End
If

无论前面怎么设计,在导航窗口代码下各节点都不适用。进去后所有人的看到表的权限还是一样的。

Select Case e.Node.Name

    Case "债务汇总表"(要使此节点张三看不见,张三也就没法打开这个表,怎么加入限制代码??或者有其他处理方式?)

        MainTable = Tables("zwhzb")

    Case "新增协议明细表"

        MainTable = Tables("xzxymxb")

    Case "新增放款明细表"

        MainTable = Tables("xzfkmxb")

    Case "还本明细表"(要使此节点李四看不见,李四也就没法开打这个表,怎么加入限制代码??或者有其他处理方式?

        MainTable = Tables("hbmxb")

    Case "利息明细表"

        MainTable = Tables("lxmxb")

    Case "工程款明细表"

        MainTable = Tables("gckmx")

    Case "工程款支付明细表"

        MainTable = Tables("gckzfmxb")

    Case "还本付息计划表"

        MainTable = Tables("hbfxjhb")

     Case "债务台账汇总表(1级)"

        MainTable = Tables("zwtzhzb3")

     Case "债务台账汇总表(2级)"

        MainTable = Tables("zwtzhzb2")

     Case "债务台账汇总表(3级)"

        MainTable = Tables("zwtzhzb1")

     Case "年度还本付息计划表"

        MainTable = Tables("ndhbfxjhb")


End Select

请问一下在导航窗口怎么授权呢??

[此贴子已经被作者于2020/4/2 15:17:56编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105489 积分:536436 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/2 16:15:00 [只看该作者]

方法1、在导航窗口afterload,遍历所有导航栏然后到权限表查询有没有权限,如果没有就隐藏这个导航栏
2、点击的时候再到权限表查询有没有权限

Select Case e.Node.Name

    Case "债务汇总表"(要使此节点张三看不见,张三也就没法打开这个表,怎么加入限制代码??或者有其他处理方式?)

if DataTables("授权表").Find("用户名 = '" & User.Name & "' and 表名 ='债务汇总表' and 不可见=false" ) isnot nothing then

        MainTable = Tables("zwhzb")

else

msgbox(没有权限)

end if

    Case "新增协议明细表"


 回到顶部