Foxtable(狐表)用户栏目专家坐堂 → [求助]请问狐表能不能实现一张表同时只能一个用户编辑?


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

主题:[求助]请问狐表能不能实现一张表同时只能一个用户编辑?

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


加好友 发短信
等级:七尾狐 帖子:1550 积分:10977 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/1/24 13:31:00 [显示全部帖子]

不光可以,而且很简单,下面是帮助文档的内容


让不同用户处理不同的表

通过一些简单的代码,我们可以让不同的人编辑或查看不同的表,也可以为不同的用户加载不同的表。

1、让不同用户编辑不同的表

例如在表A的PrepareEdit设置代码:

Select Case User.Name
    Case
"张三","李四"
        e.Cancel =
True
End Select

即可禁止张三和李四编辑表A。

2、让不同用户查看不同的表

例如在项目事件AfteOpenProject事件中设置代码:

Select Case User.Name
   
Case "张三","李四"
       
Tables("表A").Visible = False
    Case
"王五"
       
Tables("表B").Visible = False
End
Select

即可使得张三或李四打开项目后,将看不到表A,王五打开项目后,将看不到表B,不过这些表仍然可以通过代码使用。

3、为不同用户加载不同的表

BeforeLoadInnerTableBeforeLoadOuterTable事件都有一个Cancel属性,将此属性设置为True,将不加载对应的表。

例如在BeforeLoadInnerTable(内部表)或BeforeLoadOuterTable(外部表)中设置代码:

Select Case e.DataTableName
   
Case "表A"
        e.Cancel = (e.User.Name =
"张三")
   
Case "表B"
        e.Cancel = (e.User.Name =
"李四")
   
Case "表C"
        e.Cancel = (e.User.Name =
"王五")
End
Select

这样张三打开项目,将不会加载表A,需要注意的是,如果打开项目后,有代码引用表A,将会出错,因为此时表A是不存在的。
同样李四打开项目不会加载表B,王五打开项目不会加载表C。

[此贴子已经被作者于2018/1/24 13:31:16编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1550 积分:10977 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/1/24 13:56:00 [显示全部帖子]

帮助文档搜索:独占


用OpenQQ实现独占式编辑


 回到顶部