Foxtable(狐表)用户栏目专家坐堂 → 帮助中的权限


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

主题:帮助中的权限

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
帮助中的权限  发帖心情 Post By: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中写代码。


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2011/5/19 12:49:00 [只看该作者]

可视化授权对窗体中的表无效吗?

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/19 14:18:00 [只看该作者]

首先你得理解代码的。

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

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

 


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2011/5/20 8:34:00 [只看该作者]

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


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/20 8:39:00 [只看该作者]

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


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2011/5/20 8:59:00 [只看该作者]

[权限]表中对普通用户进行了限制(项目属性AfterOpenProject中有代码)现在用普通用户身份打开项目并没有限制(没有锁定表)例如主窗口、[材料]窗口、[报价]窗口中的表并没有锁定

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/20 9:28:00 [只看该作者]

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

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

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

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

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

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2011/5/20 9:48:00 [只看该作者]

知道了。建议在帮助中补充这一部分(窗口中的表的权限)

 回到顶部