Foxtable(狐表)用户栏目专家坐堂 → 关于权限管理


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

主题:关于权限管理

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
关于权限管理  发帖心情 Post By:2020/2/3 21:34:00 [只看该作者]

附件我根据视频教程一部分,但存一些问题,请老师帮助,问题点在窗体不写,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:可视化授权 -02.foxdb



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


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


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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2020/2/6 19:26:00 [只看该作者]

视频教程说下面实例上可视授权可以实现,表,窗体,菜单,按键事件,操作出现以下问题?
问题1:For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "' And 表名= '" & e.Form.Name & "'")
    
    e.Form.Controls(dr("列名")).Visible = Not dr("不可见")
    e.Form.Controls(dr("列名")).Enabled = Not dr("不可编辑")
Next
(1)可实现窗体上的按键,但控制不了窗体,比如让“生产登记”不可见或不可编辑,实现不了?
(2)菜单也实现不了?
问题2:菜单事件
Select Case e.StripItem.Name
    Case "生产管理"
        Select Case e.StripItem.Text
            Case "生产登记"
                Forms("生产登记").Open() 
            Case "生产审核"
                 Forms("编辑窗口").Open() 
           
        End Select
   
 Case "销售管理"
        Select Case e.StripItem.Text
            Case "销售查询"
                Forms("销售查询").Open() 
            
        End Select
        
End Select

也实现不了,打不开相应窗口事件?

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2020/2/6 19:28:00 [只看该作者]

问题3,权限约束是正表,放上窗体上的副表启到约束作用,如何解决?谢谢

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


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

问题1、
1、窗口没有什么不可见或不可编辑,只能控制里面的控件不可见或不可编辑,窗口不可见,就不要打开窗口即可
2、菜单的设置这样:
e.Form.Strips("工具栏1").Items(dr("菜单名")).Visible = Not dr("不可见")
e.Form.Strips("工具栏1").Items(dr("菜单名")).Enabled Not dr("不可编辑")

问题2:
Select Case e.StripItem.Text
            Case "生产登记"
                Forms("生产登记").Open() 
            Case "生产审核"
                 Forms("编辑窗口").Open() 
           Case "销售查询"
                Forms("销售查询").Open() 
        End Select

问题3:
窗口表到窗口afterload处理,注意副本表的名称:http://www.foxtable.com/webhelp/topics/1906.htm

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2020/2/7 14:32:00 [只看该作者]

问题1:菜单权限
A,视频教程说实例通用,表,窗体,菜单都可以一张表,授权表;所以我为集中便管理,不再做另一张菜单;
B,我是想实例中“主窗体权限”做为系统主程去控制其他,也就是直接跳过系统的菜单,不想设系统菜单和表标题的隐藏
C,所以实例根据您提供改代码,不执行
 For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "' And 表名= '" & e.Form.Name & "'")
     
    e.Form.Strips("表名").Items(dr("列名")).Visible = Not dr("不可见")
    e.Form.Strips("表名").Items(dr("列名")).Enabled = Not dr("不可编辑")    
Next



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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2020/2/7 14:50:00 [只看该作者]

问题3:
窗口表到窗口afterload处理,注意副本表的名称:http://www.foxtable.com/webhelp/topics/1906.htm


既然副本Table是独立的,所以它必须有自己的名称,这样才能和原Table区分开来,其名称为 :

窗口名称_控件名称

For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "' And 表名= '" & e.Form.Name & "'")

    e.Form.Controls(dr("列名")).Visible = Not dr("不可见")

    e.Form.Controls(dr("列名")).Enabled = Not dr("不可编辑")

Next


上面通用代码,如表C副表权限设计,销售查询_表C,然而上面代码通用,好象不用,如销售查询_表C,不知怎么写


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


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

回6楼,
a、哪个视频?如果是官方的可视化权限,以表格为主,对窗口和菜单不是不适合。
c、e.Form.Strips("这里是工具栏名称不是窗口名称").Items(这里是工具栏里其中一个项目的名称)

回7楼,如果是要控制窗口控件,是和表格没有关系

如果要控制窗口表格,仍然还是这里的用法:http://www.foxtable.com/webhelp/topics/1600.htm,只是授权表的表名为窗口1_table1这种而不是表A这种

    For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "' And 表名= '" & e.Form.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


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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2020/2/7 20:50:00 [只看该作者]


回8楼,
a、哪个视频?如果是官方的可视化权限,以表格为主,对窗口和菜单不是不适合

  视频开发指南,权限管理,11-可视化授权的实现,这里讲表,窗口和菜单都可以,这个教程有讲表,窗口实例,


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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2020/2/7 21:27:00 [只看该作者]

老师,按您8楼提供改还是不行,请您帮肋我上传的实例进行改,谢谢!
另说明:c、e.Form.Strips("这里是工具栏名称不是窗口名称").Items(这里是工具栏里其中一个项目的名称),我实例是窗口设计主菜单下菜单,没有工具栏。

 回到顶部
总数 11 1 2 下一页