以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]表加载问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174871)

--  作者:crazyfengyu
--  发布时间:2022/2/10 11:01:00
--  [求助]表加载问题
订单表(父表),订单明细表(子表) 2表数据过多,打开项目只加载近半年的
理想结果:订单表加载最近半年,订单明细表加载相关的数据即可。
目前结果:订单表加载最近半年,订单明细表加载了所有数据。

代码一:
在BeforeLoadOuterTable中
If e.DataTableName = "订单表" Then
    Dim StartDate As Date = Date.Today().AddDays(-180)
    e.SelectString =  *[日期] > \'" & StartDate & "\'"

    DataTables("订单表").LoadChildren("订单明细表")
End If

代码二:
在BeforeLoadOuterTable中
If e.DataTableName = "订单表" Then
    Dim StartDate As Date = Date.Today().AddDays(-180)
    e.SelectString =  * [日期] > \'" & StartDate & "\'"   (sql语法正确,无法发帖,故意删除)
End If

然后在订单表的afterLoad事件中加入
e.DataTables.LoadChildren("订单明细表")




以上方法均加载了订单明细表所哟数据,应该如何处理?
[此贴子已经被作者于2022/2/10 11:02:04编辑过]

--  作者:有点蓝
--  发布时间:2022/2/10 11:10:00
--  
2个表都设置为初始不加载数据。去掉BeforeLoadOuterTable代码

订单表的afterLoad事件中加入
e.DataTables.LoadChildren("订单明细表")

afteropenproject事件
Dim StartDate As Date = Date.Today().AddDays(-180)
datatables("订单表").loadfilter = "[日期] > \'" & StartDate & "\'"
datatables("订单表").load

--  作者:crazyfengyu
--  发布时间:2022/2/10 11:25:00
--  
这样会打开项目后卡20s左右在加载数据,系统无法操作,感觉有点使用不流畅,还有其他解决办法吗?


可不可以加载完了,在打开项目,避免一打开项目就卡住
[此贴子已经被作者于2022/2/10 11:30:41编辑过]

--  作者:有点蓝
--  发布时间:2022/2/10 11:32:00
--  
在BeforeLoadOuterTable中
If e.DataTableName = "订单表" Then
    Dim StartDate As Date = Date.Today().AddDays(-180)
    e.SelectString =  "select * from 订单表 where [日期] > \'" & StartDate & "\'"

elseif e.DataTableName = "订单明细表"
    Dim StartDate As Date = Date.Today().AddDays(-180)
    e.SelectString =  "select * from 订单明细表 where 订单编号 in (select 订单编号 from 订单表 where [日期] > \'" & StartDate & "\')"
End If