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


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

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

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


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

谢谢我在看看,问题到底出现在哪里。

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


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

1、代码不能写在 LoadUserSetting

 

2、你写的代码也不对

 

3、不需要写prepareEdit事件

 

4、具体你看我上传的例子


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


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

大红袍老师您好!我下载看了你上传的文件测试过不行。看到你把代码字段写在AfterOpenproject事件上。我在授权表PrepareEdit事件中去掉所有代码,未添加任何代码字段,在项目事件LoadUserSetting中去掉代码字段,改写到AfterOpenproject事件上添加你修改的代码字段如下:测试后仍不行,切换不同用户发现受权限限制的用户仍可以修改编辑授限制的表内容。外部用户数据源连接测试提示成功,感觉代码设置事件位置也正确,但就是在测试时得不到想要的结果,又不明白问题出在那里。

你修改的代码字段内容是否如下:
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

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


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

 你要把这段代码写到 登录窗口 去才行,afteropenproject,必须是打开项目的时候才触发的。

 

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
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

烦在问一下,你说吧上段代码放在登录窗口事件中,我在登录窗口事件中未找到有afteropenproject事件选项,能否再具体指出登录窗口中那个位置,那个事件名称下加写此段代码。

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


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

 确定按钮啊,登录的时候,肯定要重新设置一次权限的啊

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


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


图片点击可在新窗口打开查看此主题相关图片如下:qq图.png
图片点击可在新窗口打开查看
我在登陆窗口确定按钮中 click 事件中添加了
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  代码 出现截图提示,不知错误又出在哪?
 
 

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


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

  For Each dr As DataRow In DataTables("授权表").Select("分组名 = '" & _UserGroup & "'" )

 

改成

 

 For Each dr In DataTables("授权表").Select("分组名 = '" & _UserGroup & "'" )


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


加好友 发短信
等级:五尾狐 帖子:1100 积分:8985 威望:0 精华:0 注册:2014/3/15 14:36:00
  发帖心情 Post By:2015/5/12 22:40:00 [只看该作者]

愚见: 可视化权限设置,是个细仔活,一是权限表,二是触发每个事件前读取权限表的设置而已。
[此贴子已经被作者于2015/5/12 22:42:15编辑过]

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