以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于权限管理  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145661)

--  作者:lgz518
--  发布时间:2020/2/3 21:34:00
--  关于权限管理
附件我根据视频教程一部分,但存一些问题,请老师帮助,问题点在窗体不写,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:可视化授权 -02.foxdb



--  作者:有点蓝
--  发布时间:2020/2/3 22:57:00
--  

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=59745&authorid=0&page=2&star=1

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=41945&page=5

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=99766&page=5


--  作者:lgz518
--  发布时间: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
--  发布时间:2020/2/6 19:28:00
--  
问题3,权限约束是正表,放上窗体上的副表启到约束作用,如何解决?谢谢
--  作者:有点蓝
--  发布时间: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
--  发布时间: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
--  发布时间: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,不知怎么写


--  作者:有点蓝
--  发布时间: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
--  发布时间:2020/2/7 20:50:00
--  

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

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


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