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


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

主题:权限设置问题

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望: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编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/24 23:19:00 [显示全部帖子]

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

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望: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也设置了打开窗口的代码,但是由于窗口已经打开,所以无效。


 回到顶部