以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  帮助中的权限  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=10047)

--  作者:实话实说
--  发布时间:2011/5/19 11:03:00
--  帮助中的权限

下面这段代码在帮助中找不到了? 还能用吗?

 

主表中可视化授权


然后在项目事件LoadUserSetting中,加入如下代码:
For Each t As Table In Tables
    t.Visible = True
    t.AllowEdit = true
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next
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

    需要禁止某个权限的时候,才需要在授权表加入相应的条目。例如按照上图的设置,张三看不到表A,不能编辑表B,李四则看不到表B,不能编辑表C,至于王五,比较特殊,他看不到表A的第三列,不能编辑表A的第八列。

    注:模式窗口中权限表的可视化授权应在窗口的AfterLoad中写代码。


--  作者:实话实说
--  发布时间:2011/5/19 12:49:00
--  
可视化授权对窗体中的表无效吗?
--  作者:狐狸爸爸
--  发布时间:2011/5/19 14:18:00
--  

首先你得理解代码的。

窗口中的表可能有效,也可能无效。

因为授权是根据表名来的,对于副本或者SQLTable、QureryTable来说,表名是比较特别的,你在授权表中的表名也必须做相应的调整。

 


--  作者:实话实说
--  发布时间:2011/5/20 8:34:00
--  
请狐爸看一下,我希望对普通用户按[权限]表锁定,搞了一晚上没有搞定。开发者密码888,窗口左上有个隐形按钮进入系统。权限设置代码在项目属性中
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:产品价格01待注册.zip


--  作者:狐狸爸爸
--  发布时间:2011/5/20 8:39:00
--  

在哪里设置了什么代码,目的是什么,并举例说明哪里不行。


--  作者:实话实说
--  发布时间:2011/5/20 8:59:00
--  
[权限]表中对普通用户进行了限制(项目属性AfterOpenProject中有代码)现在用普通用户身份打开项目并没有限制(没有锁定表)例如主窗口、[材料]窗口、[报价]窗口中的表并没有锁定
--  作者:狐狸爸爸
--  发布时间:2011/5/20 9:28:00
--  

这是因为窗口中的Table控件的允许编辑属性被设置为True了。

可视化授权在打开项目后执行,此时材料表却是不能编辑,但是你打开窗口后,材料表根据table控件的属性设置,重新变为只读的了。

可以这么说,帮助中可视化授权的表编辑授权,对于窗口Table无效。

但是你可以自己解决,在窗口的AfterLoad事件设置代码,根据用户名和标明,从授权表读取有关信息,来设置窗口Table的AllowEdit属性

[此贴子已经被作者于2011-5-20 9:30:46编辑过]

--  作者:实话实说
--  发布时间:2011/5/20 9:48:00
--  
知道了。建议在帮助中补充这一部分(窗口中的表的权限)