Foxtable(狐表)用户栏目专家坐堂 → 权限管理的几个问题


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

主题:权限管理的几个问题

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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
权限管理的几个问题  发帖心情 Post By:2015/12/17 16:13:00 [只看该作者]

请教大红袍老师,最近自己看了几天的帮助和论坛的发帖,感觉有些糊涂了,以下问题自己不能解决,特请教老师指导。
条件:外部数据源
问题:
1. 我设计了可视化授权,必须要输入窗口名和控件名才能生效,怎样可以不输入控件名,只输入窗口名就不可见窗口
2.测试中,我又设计了目录树授权,但是没有生效,不能实现对外部表的权限控制,勾选不起作用,不知问题在哪里;另外如何实现对窗口的权限控制
3.在实际使用中,如果采用可视化授权,使用人员是不知道窗口名称的,如何实现组合框内能下拉显示全部窗口名称进行选择。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.zip



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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/17 17:15:00 [只看该作者]

1、

 

Dim dt As DataTable = DataTables("授权表")
For Each dr As DataRow In dt.Select("窗口 = '主页' and 分组名 = '" & _UserGroup & "' and 控件 is null")
    If dr("不可见") Then
        e.form.close
    ElseIf dr("不可编辑") Then
        For Each c As object In e.Form.Controls
            c.Enabled = False
        Next
    End If
Next


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/17 17:20:00 [只看该作者]

2、直接拷贝代码

 

http://www.foxtable.com/help/topics/1600.htm

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/17 17:22:00 [只看该作者]

3、

 

Dim fs As String = ""
For Each f As WinForm.Form In Forms
    fs &= f.name & "|"
Next
msgbox(fs.trim("|"))


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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2015/12/17 17:47:00 [只看该作者]

老师,我还有一个问题忘了,再麻烦请教一个问题,我写的可视化授权的代码不能控制对窗口中表的权限控制,如果用原来的代码选择控件是能控制不可见表,能见到窗口的,

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/17 18:04:00 [只看该作者]

看2楼,那里控制了窗口能否打开。

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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2015/12/18 14:48:00 [只看该作者]

大红袍老师,还得再请教请教,老师昨天指导的几个问题我进行了学习也看了相关视频,基本能实现功能了,还有几个可视化授权的问题尚需请教

1. 我设计的系统里面,大部分表格都设置在TabControl控件内,授权表要写出窗口名和控件名才能实现打开窗口,在窗口内不可见控件;
    如何实现授权表内仅写入表名,不用写窗口名和控件名,就能实现窗口内的表不可见(我参照帮助和论坛里的指导,目前所写代码还不能实现)

2. 如果授权表内分别设置了表名、列名、窗口、控件.....,怎样复合实现输入某一列的内容,就能实现指定的权限控制
    例如:在表名列,输入工资,只有分组列的经理在窗口中可见工资; 在窗口列,输入财务,只有分组列的总经理在窗口可见财务

3. 根据老师昨天的指导,我测试后,根据帮助中的可视化授权,要把在LoadUserSetting中写入的代码放置到登录窗口的按钮中,好像没有必要了,
    只要在所要权限控制的窗口AFTERLOAD中写入,例如:
For Each dr As DataRow In DataTables("授权表").DataRows
    If dr.IsNull("窗口") = False And dr("分组名") = _UserGroup Then
        Forms(dr("窗口")).Controls(dr("控件")).Visible = Not dr("不可见")
        Forms(dr("窗口")).Controls(dr("控件")).Enabled = Not dr("不可编辑")
    End If
Next
    就可通过授权表进行控制了,不知是否能这样理解。

4. 我所做的目录树权限控制,还是没有实现,我也进行了代码的复制,还是不生效,不能控制窗口中表的不可见和可见。

    写这么多,大红袍老师一定会感到学生很烦,老教不会,请老师原谅原谅,都在学习过程中,原来基础为0,现在已经有很大进步了,为了弄明白,总是在麻烦老师,老师每次指导的代码,我都在认真和努力的研究看懂,但有些还是不能完全理解明白,所以反复多次才能真正理解。再次谢谢各位老师的诚挚指导。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.zip




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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/18 14:58:00 [只看该作者]

1、打开窗口的时候,afterload事件运行一次控制表显示的代码。

 

2、看1

 

3、是的,窗口的控制,只能把代码写到afterLoad事件

 

4、窗口的表的可见不可见,要在afterLoad事件控制的,看1


 回到顶部