Foxtable(狐表)用户栏目专家坐堂 → 多用户同步问题


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

主题:多用户同步问题

帅哥哟,离线,有人找我吗?
广州信实翻译公司
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:17 积分:166 威望:0 精华:0 注册:2014/8/11 15:23:00
多用户同步问题  发帖心情 Post By:2014/9/11 12:48:00 [只看该作者]


我在一个表"笔译项目管理_详情表"里面的AfterEdit事件,设置:


...

DataTables("笔译项目管理_详情表").DataRows(1).Save()


DataTables("笔译项目管理_详情表").DataRows(1).Load()

...

但是在修改了某指定列第2行的数据后,在另一用户那,仍然没有更新数据。

感觉似乎是没有触发另一用户的Load方法,怎么解决呢?

 回到顶部
帅哥哟,离线,有人找我吗?
广州信实翻译公司
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:17 积分:166 威望:0 精华:0 注册:2014/8/11 15:23:00
  发帖心情 Post By:2014/9/11 13:06:00 [只看该作者]

我改成了在DataColChanged事件设置以上代码,还是不行

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/9/11 14:10:00 [只看该作者]

首先,你Load只是你这个客户端Load而已,和对方无关

其次DataTables("笔译项目管理_详情表").DataRows(1).Load()  这个代码永远都在加载第二行


其实你只需要设计一个刷新按钮. 执行DataTables("笔译项目管理_详情表").Load 即可

就好像这个论坛一下,不刷新是看不到最新的数据的.  

 回到顶部
帅哥哟,离线,有人找我吗?
广州信实翻译公司
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:17 积分:166 威望:0 精华:0 注册:2014/8/11 15:23:00
  发帖心情 Post By:2014/9/11 14:21:00 [只看该作者]

谢谢。

首先,你Load只是你这个客户端Load而已,和对方无关
确实,我当时是感觉这样

其次DataTables("笔译项目管理_详情表").DataRows(1).Load()  这个代码永远都在加载第二行
第二行只是做测试,之后会改

其实你只需要设计一个刷新按钮. 执行DataTables("笔译项目管理_详情表").Load 即可
问题:
1. 不可能总是人工点击按钮刷新吧?应该可以自动隔一段时间刷新吧?
2. 帮助文件似乎没有说清楚

Load

重新加载行。
如果其他人已经修改并保存此行,执行此方法,即可将该行最新的内容同步显示在表中。

语法:

Load(Save)

Save:可选参数,逻辑型,同步前是否保存此行,默认为True,也就是保存。

例如重新加载订单表的第二行:

DataTables("订单").DataRows(1).Load()

如果要重新加载整个表,请执行DataTable的Load方法,那样效率会比逐行重新加载高很多。

如果将Save参数设为False,可以撤销对某一行做出的修改,例如撤销对订单表第二行的修改:

DataTables("订单").DataRows(1).Load(False)

如果只希望撤销修改,而不需要重新加载数据,请使用Reject方法。




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


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

 你可以做一个计时器

 

 http://www.foxtable.com/help/topics/0657.htm

 


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/11 14:37:00 [只看该作者]

以下是引用Bin在2014-9-11 14:10:00的发言:
首先,你Load只是你这个客户端Load而已,和对方无关

其次DataTables("笔译项目管理_详情表").DataRows(1).Load()  这个代码永远都在加载第二行


其实你只需要设计一个刷新按钮. 执行DataTables("笔译项目管理_详情表").Load 即可

就好像这个论坛一下,不刷新是看不到最新的数据的.  

是不是刷新按钮,click里面把所有的表都写进去。比如。DataTables("A表").Load  DataTables("B表").Load  DataTables("C表").Load .这样是否就可以同步所有表的数据了?


 回到顶部
帅哥哟,离线,有人找我吗?
广州信实翻译公司
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:17 积分:166 威望:0 精华:0 注册:2014/8/11 15:23:00
  发帖心情 Post By:2014/9/11 14:40:00 [只看该作者]

计时器应该是个解决方案。但是,不是应该有个在某个用户编辑后,触动其他用户加载的方法么?这样,A用户没有编辑,B用户就不用加载了。而且,加载也只是加载被编辑的内容(也许只是一行两个的数据),而无需加载所有表(也许是几十几百个表)

 回到顶部
帅哥哟,离线,有人找我吗?
广州信实翻译公司
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:17 积分:166 威望:0 精华:0 注册:2014/8/11 15:23:00
  发帖心情 Post By:2014/9/11 15:18:00 [只看该作者]

计时器其实是很麻烦的。不能实现这种:某个用户编辑后,才触动其他用户加载??

 回到顶部
帅哥哟,离线,有人找我吗?
广州信实翻译公司
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:17 积分:166 威望:0 精华:0 注册:2014/8/11 15:23:00
  发帖心情 Post By:2014/9/11 15:21:00 [只看该作者]

那帮助文件上的

Load

重新加载行。
如果其他人已经修改并保存此行,执行此方法,即可将该行最新的内容同步显示在表中。”


似乎是没有意义的——其他人已经修改了,也无法判断,也不能加载该修改过的行,只能定时加载整个表,而且因为无法判断哪个表有修改,就只能加载所有表(可能是几十几百)?难道不能解决这个问题?


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


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

 回复,楼上,暂时没有这个功能。不过你可以做一下。

 

 1、做一个加载需求的表;

 

 2、修改一列,保存,就往表里写入数据;

 

 3、每个客户端,检测这个表是否有需要加载表的需求,实现对应的加载表数据。


 回到顶部
总数 14 1 2 下一页