以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  刷新当前行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49128)

--  作者:1234567
--  发布时间:2014/4/12 13:22:00
--  刷新当前行

有三级表,其中表A是表B的父表,表B是表C的父表,定义了相应的关联关系。

创建一个刷新按纽,当我选定A表某行后,按刷新键,能刷新A、B、C表相关数据。

求代码?


--  作者:Bin
--  发布时间:2014/4/12 14:07:00
--  
datatables("表A").load
datatables("表B").load
datatables("表C").load

--  作者:1234567
--  发布时间:2014/4/12 14:59:00
--  

我希望只刷新A表的当前行和B表、C表的相应行。

B表和C表的数据比较庞大,如果刷新A、B、C表的所有数据,响应时间太长。


--  作者:Bin
--  发布时间:2014/4/12 15:09:00
--  
tables("表A").current.load
datatables("表A")..LoadChildren("表B")
datatables("表B").LoadChildren("表C")


--  作者:scott518
--  发布时间:2014/4/12 15:15:00
--  

请教BIN老师,4楼的和下面帮助中的有什么区别?


Dim r As Row = Tables("单").Current
Dim
fl As String = "订单编号 = \'"  & r("订单编号") & "\'"
r.Load()
\'加载父行
LockBaseMainForm
() \'锁定主窗口
DataTables
("单明细").StopRedraw \'停止绘制订单明细
DataTables
("单明细").RemoveFor(fl) \'移除当前订单的订单明细
DataTables
("单明细").Appendload(fl) \'追载当前订单的订单明细
DataTables
("订单明细").ResumeRedraw \'恢复绘制订单明细
UnLockBaseMainForm()
\'解锁主窗口


--  作者:Bin
--  发布时间:2014/4/12 15:53:00
--  
言不如行, 自己测试对比一下就明了了.
--  作者:1234567
--  发布时间:2014/4/12 16:01:00
--  

用2楼代码耗时68秒,用4楼代码耗时20秒,请问斑竹,能否再快点吗?

 


--  作者:Bin
--  发布时间:2014/4/12 16:05:00
--  
数据量的多少和带宽限制了速度,没办法.

想快,不要加载那么多.

--  作者:1234567
--  发布时间:2014/4/12 16:06:00
--  

目前表A有500行数据,表B有3000行数据,表C有10000行数据。

我的思路是这样的,定期自动刷新8小时内被编辑过的数据,这样执行是不是可以呢?


--  作者:Bin
--  发布时间:2014/4/12 16:08:00
--  
手动点击刷新按钮,进行刷新.  也可以变通一下采用分页加载.