Foxtable(狐表)用户栏目专家坐堂 → [求助] 用户可视化权限设置疑问


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

主题:[求助] 用户可视化权限设置疑问

美女呀,离线,留言给我吧!
hch
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1170 威望:0 精华:0 注册:2012/9/12 15:30:00
[求助] 用户可视化权限设置疑问  发帖心情 Post By:2015/5/1 15:23:00 [只看该作者]

    我想完成对自建立的管理系统人员分配不同权限,使他们对项目中的某个表进行编辑权限设置。参照帮助文件 “ 让不同用户处理不同的表,可视化授权的实现”及《可视化授权项目》学习,在项目中增加一个“授权表”表格式内容见截图:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试4281.table


图片点击可在新窗口打开查看此主题相关图片如下:qq截图.png
图片点击可在新窗口打开查看
    1、在项目事件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.Group & "'" )
        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
    2、在授权表中的PrepareEdit事件中设置代码:
Select Case User.Name 
    Case "张三","李四"
        e.Cancel = True
End Select
    设置完成代码后,在切换不同自定义用户如张三、李四,发现代码不起作用,任何人都可编辑表《正式职工》中的信息,这是怎么回事呀,请给予明确提示
,谢谢。

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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2015/5/1 18:02:00 [只看该作者]

明确提示 :USER外部表不存在!

 回到顶部
美女呀,离线,留言给我吧!
hch
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1170 威望:0 精华:0 注册:2012/9/12 15:30:00
  发帖心情 Post By:2015/5/2 10:07:00 [只看该作者]

是不是要建立一个外部数据源,表名程为 "user"的外部数据表,表的结构及内容就是授权表的结构和内容,然后与项目进行关联。我是初学者能否给个明确操作步骤。

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


加好友 发短信
等级:婴狐 帖子:88 积分:518 威望:0 精华:0 注册:2015/5/3 21:12:00
  发帖心情 Post By:2015/5/3 21:37:00 [只看该作者]

代码

 

User.Name要替换成_UserName

User.Group要替换成_UserGroup

 

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("分组名 = '" & _UserGroup & "'" )
        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


 回到顶部
美女呀,离线,留言给我吧!
hch
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1170 威望:0 精华:0 注册:2012/9/12 15:30:00
  发帖心情 Post By:2015/5/4 14:40:00 [只看该作者]

首先谢谢3楼老师。根据你的提示我在项目事件上替换了你提供的代码字段,测试还是不行,不知在那个地方将User.Name要替换成_UserName,User.Group替换成_UserGroup是你修改的红色标记地段吗(Select("分组名 = '" & _UserGroup & "'" ))我是初学者,能否在我提供测试文件上给与修改,我再下载后套用。我看帮助文件有两种方式,一种是直接在需要设置权限表的表属性加代码设定权限;另一种是根据可视化授权实现对表的编辑权限的设置。不明白到底采用那种方法才能实现我想要的结果,就是针对不同用户对不同的表有不同编辑权限。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/4 14:44:00 [只看该作者]

在所有的地方.都需要替换掉.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/4 14:44:00 [只看该作者]

可视化权限的例子,可以满足你需求

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


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

         

   

 

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


 回到顶部
美女呀,离线,留言给我吧!
hch
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1170 威望:0 精华:0 注册:2012/9/12 15:30:00
  发帖心情 Post By:2015/5/11 16:58:00 [只看该作者]

不好意思,我还是没有弄明白不同用户处理不同表的编辑权限设置。反复看了帮助和“可视化授权”示例,在测试项目中套用可视化授权示例代码,编码放在同样事件下,根据大红袍01老师提示将 项目事件LoadUserSettingSelect("用户名 = '" & User.Name & "'" )改写为Select("用户名 = '" & _User.Name & "'" ),但测试发现权限不起作用,另外BIN老师指出在所有的地方.都需要替换掉.是指项目事件、表事件、及登录窗口、用户管理、等地方吗?8楼大红袍给的修改文件下载测试还是不行。现将测试文件再次上传,请老师们看看,给具体编写一下,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试1.table


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


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

 8楼没有任何问题

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