以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]子表同步加载能否多线程加载 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185972) |
-- 作者:沪上游客 -- 发布时间:2023/3/29 10:57:00 -- [求助]子表同步加载能否多线程加载 老师,我的主表“工程合同基础数据”事件AfterLoad中有如下代码,用于在主表只加载一条记录时,同时加载关联子表数据。因为有的记录子表记录多较多,运行时间太长,还会假死机,请问在事件中可不可以多线程(客户端)?代码应该怎么写? 谢谢老师指导!
Tables("工程合同基础数据").Sort = "财务编号" If Forms("单项合同各项数据查询").Opened Then Dim btn As WinForm.Button = Forms("单项合同各项数据查询").Controls("刷新概况") btn.PerformClick() ElseIf Forms("项目清算").Opened Then zhtbjzgl = True Else Dim t As Table = Tables("工程合同基础数据") Dim n As Integer = t.Rows.count If n = 1 Then zhtbjzgl = False \'加载主合同时不加载所有关联表(主要用于项目清算窗口打开时选择项目合同编号) Else zhtbjzgl = True End If End If e.DataTable.LoadChildren("支出合同研发成本") e.DataTable.LoadChildren("资金调整") If zhtbjzgl = False Then e.DataTable.LoadChildren("增值税发票开票登记") e.DataTable.LoadChildren("补充合同或决算数据") e.DataTable.LoadChildren("应收款收入数据") e.DataTable.LoadChildren("其他成本费用") e.DataTable.LoadChildren("工资表") e.DataTable.LoadChildren("总部申报") If DataTables.Contains("固定资产明细") = True e.DataTable.LoadChildren("固定资产明细") End If e.DataTable.LoadChildren("收入合同移交记录") e.DataTable.LoadChildren("项目借款数据") e.DataTable.LoadChildren("项目资金管理") End If |
-- 作者:有点蓝 -- 发布时间:2023/3/29 11:16:00 -- 没有办法使用多线程,考虑使用模拟关联和分页加载 |
-- 作者:沪上游客 -- 发布时间:2023/3/29 13:44:00 -- 老师,没有其他办法了吗?现在最长的一条记录需要17秒。 |
-- 作者:有点蓝 -- 发布时间:2023/3/29 13:47:00 -- 没有其它办法 |