Foxtable(狐表)用户栏目专家坐堂 → 权限设置问题


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

主题:权限设置问题

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
权限设置问题  发帖心情 Post By:2010/5/24 22:07:00 [只看该作者]

权限设置不起作用,不知问题在哪。开发者密码:58011700

项目属性LoadUserSetting事件

Tables("权限表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("权限表").Select("用户名 = '" & User.Name & "'" )
        'Tables(dr("表名")).Visible = Not dr("不可见")
        Tables(dr("表名")).AllowEdit = Not dr("不能编辑")
    Next
End If

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


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


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

代码没有错,你可以在命令窗口执行下面的代码验证:

 

If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("权限表").Select("用户名 = '" & User.Name & "'" )
        Tables(dr("表名")).AllowEdit = Not dr("不能编辑")
        output.show(dr("表名") & ":" & Tables(dr("表名")).AllowEdit)
    Next
End If

你的代码只是设置了打开项目后,表是否能能编辑。

但是之后表的编辑状态是可以改变的,例如你在窗口中插入了一个Table控件,但是这个Table控件的允许编辑属性设置为了True,那么打开窗口后,这个Table就能够编辑,不管它之前是否能编辑。

你的MainTable事件中设置了代码用于打开窗口,而这些窗口中的Table的允许编辑属性都设置为了True,所以这些Table都是能编辑的,

[此贴子已经被作者于2010-5-24 22:52:55编辑过]

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


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

再看看这个系统的权限设置,方法几乎一样,这个系统的权限就正常,窗口中的表也可编辑。密码相同
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:456.rar


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


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

原因我告诉你了,自己分析吧

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


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

提醒一下:

 

123.rar这个项目,窗口的自动打开属性是False,456.rar这个项目的自动打开属性为True

 

这就是他们的差别,前者执行LoadUserSetting,再打开的窗口(MainTableChanged事件),后者一开始就打开了窗口,再执行LoadUserSetting,尽管MaintableChanged也设置了打开窗口的代码,但是由于窗口已经打开,所以无效。


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


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

是这样,谢谢。

 回到顶部