以文本方式查看主题

-  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=96369)

--  作者:dszqiooe
--  发布时间:2017/2/19 1:39:00
--  [求助]求父表与子表同步加载,因父表计算子表公式加载缓慢的解决办法
利用语法:
LoadChildren(子表名称)
LoadChildren(子表名称, 父表关联列名称, 子表关联列名称)

由LoadChildren的语法可以看出,如果父表和子表没有建立关联,我们可以通过指定关联列来实现同步加载,例如:

DataTables("订单").LoadChildren("订单明细", "订单编号", "订单编号")


可以实现父表与子表同步加载,但是如果父表中有计算子表数据的公式,父子表的同步加载就会非常慢,请问各位有没有什么好的解决办法?
[此贴子已经被作者于2017/2/19 1:40:26编辑过]

--  作者:dszqiooe
--  发布时间:2017/2/19 2:34:00
--  
我找到解决办法啦

Dim ColNames As New List(Of String)
For Each dc As DataCol In e.DataTable.DataCols
    ColNames.Add(dc.Name & "|" &  dc.Expression)
    If dc.Expression <> "" Then dc.Expression=""
Next

DataTables("SAP订单").LoadChildren("提货单", "SAP订单号", "SAP订单号")   \'执行父表和子表同步加载

Dim Values() As String
For Each ColName As String In ColNames     
    Values = ColName.split("|")
    If Values(1) <> "" Then e.DataTable.DataCols(Values(0)).Expression=Values(1)
Next

大家有没有其他简单高效的办法?求教啦
[此贴子已经被作者于2017/2/19 2:35:46编辑过]

--  作者:有点色
--  发布时间:2017/2/19 10:03:00
--  

 

嗯嗯,只有这种思路。