Foxtable(狐表)用户栏目专家坐堂 → 设置了所有表无法修改,如何让某表的指定列可修改


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

主题:设置了所有表无法修改,如何让某表的指定列可修改

帅哥哟,离线,有人找我吗?
天若千颖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
设置了所有表无法修改,如何让某表的指定列可修改  发帖心情 Post By:2017/8/2 8:52:00 [显示全部帖子]

版主,在项目AfterProjectLoad中禁止了特定用户组修改数据表

If User.IsRole("数据管理") Then

DataTables.AllowEdit = True

 For Each dt As DataTable In DataTables

        dt.AllowClipBoard = True

 Next

Else

DataTables.AllowEdit = False

 For Each dt As DataTable In DataTables

        dt.AllowClipBoard = False

 Next

End If


是否可以让“项目资料表”中的“批量下载”列又可以修改呢?


我用以下代码想把“项目资料表”排除在修改权限之外,但是当用户不具有“数据管理”角色时,所有的表都可以修改了。哪里错了?


If User.IsRole("数据管理") Then

DataTables.AllowEdit = True 

 For Each dt As DataTable In DataTables

        dt.AllowClipBoard = True

 Next

Else

 For Each dt As DataTable In DataTables

  If dt.Name <> "项目资料表" Then '除项目资料表之外,其他数据表均无法修改

        dt.AllowClipBoard = False

        dt.AllowEdit=False

  End If

 Next

End If

[此贴子已经被作者于2017/8/2 9:26:30编辑过]

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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2017/8/2 9:51:00 [显示全部帖子]

版主的意思是,让所有的表禁止修改后,又可以指定某张表的列可以修改?

我用第二种方案,把“项目资料表”,发现其他表禁止复制有效,禁止编辑无效,这是何故?

也就是说

dt.AllowClipBoard = False '有效

dt.AllowEdit=False   '没有生效

[此贴子已经被作者于2017/8/2 10:00:16编辑过]

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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2017/8/2 10:05:00 [显示全部帖子]

那这样太繁琐,一百多张表,不能每张表去写表事件,直能把要开发权限的表排除在外,其他的都禁止编辑。

现在的问题就是,我的第二种方案代码为何没有把禁止编辑给限制掉,却能够禁止复制。

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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2017/8/2 10:27:00 [显示全部帖子]

For Each dt As DataTable In DataTables

  If dt.Name <> "项目资料表" Then '除项目资料表之外,其他数据表均无法修改

        dt.AllowClipBoard = False

        dt.AllowEdit= False

  End If

 Next


版主,上述代码已经禁止了数据表的复制功能,说明判断是没有问题的,但是为什么没有禁止掉编辑功能呢?


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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2017/8/2 14:44:00 [显示全部帖子]

多谢版主,我直接写全局表事件里了。

PrepareEdit事件:

If User.IsRole("数据管理") Then
For Each dt As DataTable In DataTables
       dt.AllowClipBoard = False
Next
If e.Col.Name <> "批量下载" Then 
e.Cancel = True
End If
End If



 回到顶部