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


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

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

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


加好友 发短信
等级:幼狐 帖子:117 积分:940 威望:0 精华:0 注册:2017/1/12 16:26:00
[求助]请问狐表能不能实现一张表同时只能一个用户编辑?  发帖心情 Post By:2018/1/24 13:26:00 [只看该作者]

请问各位大神狐表能不能实现一张表同时只能一个用户编辑?权限管理里只看到了同时只能一个用户编辑同一行。

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11009 威望: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编辑过]

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


加好友 发短信
等级:幼狐 帖子:117 积分:940 威望:0 精华:0 注册:2017/1/12 16:26:00
  发帖心情 Post By:2018/1/24 13:50:00 [只看该作者]

这个我知道,但是不能达到我的需求呀。我需要一张表可以有多人编辑,但是同时只能1个人编辑,你发的方法只能限制哪些人可以编辑啊。

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11009 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/1/24 13:56:00 [只看该作者]

帮助文档搜索:独占


用OpenQQ实现独占式编辑


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


加好友 发短信
等级:幼狐 帖子:117 积分:940 威望:0 精华:0 注册:2017/1/12 16:26:00
  发帖心情 Post By:2018/1/24 14:14:00 [只看该作者]

这个我也看过了,也是独占编辑行的,我想要独占编辑表...另外我没弄服务器端,所以想用那种过时的方式进行独占编辑...

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/24 14:24:00 [只看该作者]

以下是引用ye8573在2018/1/24 13:50:00的发言:
这个我知道,但是不能达到我的需求呀。我需要一张表可以有多人编辑,但是同时只能1个人编辑,你发的方法只能限制哪些人可以编辑啊。

 

参考

 

http://www.foxtable.com/webhelp/scr/2295.htm

 


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


加好友 发短信
等级:幼狐 帖子:117 积分:940 威望:0 精华:0 注册:2017/1/12 16:26:00
  发帖心情 Post By:2018/1/24 14:40:00 [只看该作者]

大神,这个我已经参考过了,独占编辑行已经成功实现了,但是不知道应该怎样把独占行扩展到独占表,求帮助

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/24 15:57:00 [只看该作者]

以下是引用ye8573在2018/1/24 14:40:00的发言:
大神,这个我已经参考过了,独占编辑行已经成功实现了,但是不知道应该怎样把独占行扩展到独占表,求帮助

 

不明白你为什么要这样做,说明目的。

 

做一个【独占编辑表】,记录哪个表正在呗哪个用户编辑。

 

当一个用户修改某个表的时候,先查询表格,看此表是否有其它用户修改,如果没有,就把用户名填进去保存;如果有,就提示,xxx正在编辑。

 

当用户编辑完某表后(你可以弄一个按钮【完成编辑】,或者在beforeSaveDatarow事件判断是否还有正在编辑的行),去独占编辑表吧信息移除。


 回到顶部