以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  多用户同步问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=56722)

--  作者:广州信实翻译公司
--  发布时间:2014/9/11 12:48:00
--  多用户同步问题

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


...

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


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

...

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

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

--  作者:广州信实翻译公司
--  发布时间:2014/9/11 13:06:00
--  
我改成了在DataColChanged事件设置以上代码,还是不行
--  作者:Bin
--  发布时间:2014/9/11 14:10:00
--  
首先,你Load只是你这个客户端Load而已,和对方无关

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


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

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

--  作者:广州信实翻译公司
--  发布时间: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方法。




--  作者:有点甜
--  发布时间:2014/9/11 14:22:00
--  

 你可以做一个计时器

 

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

 


--  作者:liujywwy
--  发布时间: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 .这样是否就可以同步所有表的数据了?


--  作者:广州信实翻译公司
--  发布时间:2014/9/11 14:40:00
--  
计时器应该是个解决方案。但是,不是应该有个在某个用户编辑后,触动其他用户加载的方法么?这样,A用户没有编辑,B用户就不用加载了。而且,加载也只是加载被编辑的内容(也许只是一行两个的数据),而无需加载所有表(也许是几十几百个表)
--  作者:广州信实翻译公司
--  发布时间:2014/9/11 15:18:00
--  
计时器其实是很麻烦的。不能实现这种:某个用户编辑后,才触动其他用户加载??
--  作者:广州信实翻译公司
--  发布时间:2014/9/11 15:21:00
--  
那帮助文件上的

Load

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


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


--  作者:有点甜
--  发布时间:2014/9/11 15:25:00
--  

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

 

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

 

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

 

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