以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]又不会了,关于加载关联表的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107405)

--  作者:洮沙
--  发布时间:2017/9/27 13:23:00
--  [求助]又不会了,关于加载关联表的问题

现在有“客户”、“主合同”两张表关联,“客户”表为父表,“主合同”表为子表。

两张表分别按照每页14行加载成功(SQL2008数据库)。

With DataTables("客户")
    .LoadFilter = "" \'一定要清除加载条件
    .LoadTop = 14
    .LoadPage = 0
    .Load()
End With

With DataTables("主合同")
    .LoadFilter = "" \'一定要清除加载条件
    .LoadTop = 14
    .LoadPage = 0
    .Load()
End With

现在的问题是:

选择客户行,只显示主合同的第一页显示的关联合同项,麻烦问一下,如何能够全部显示!

谢谢!

[此贴子已经被作者于2017/9/27 13:24:27编辑过]

--  作者:有点甜
--  发布时间:2017/9/27 14:14:00
--  

设置

 

.LoadTop = "100 percent"


--  作者:洮沙
--  发布时间:2017/9/27 14:38:00
--  解决了,谢谢万能的帮助文件!

同步加载之二

上一节介绍的父表与子表同步加载的方法,对于多数用户来说,可能稍微复杂了一点,而且效率相对比较低,帮助之所以保留这种方法,主要还是为了让大家熟悉和演练一下SQL语句。

实际上,Foxtable提供了非常简单高效的同步加载方法,你要做的只需在父表的AfterLoad事件中加上一行代码:

e.DataTable.LoadChildren("子表")

例如订单和订单明细通过订单编号建立关联,订单表动态加载,每次只加载一定数量的订单进行处理,为了每次加载订单后,能同步加载这些订单的订单明细,只需在订单表的AfterLoad事件加上代码:

e.DataTable.LoadChildren("订单明细")

是的,就是这么简单,因为你用的是Foxtable。

LoadChildren是DataTable的一个方法,用于加载子表数据,而且只加载那些父表已经存在对应行的子表数据。

[此贴子已经被作者于2017/9/27 14:40:05编辑过]

--  作者:有点甜
--  发布时间:2017/9/27 14:41:00
--  

 

http://www.foxtable.com/webhelp/scr/2894.htm

 


--  作者:洮沙
--  发布时间:2017/9/27 15:05:00
--  回复:(有点甜)?http://www.foxtable.com/we...

我还是错了,刚刚测试了一下,不行啊!估计是两张表都已经加载成功了。问题有一点改善,e.DataTable.LoadChildren("订单明细")作用有限啊!

“主合同”加载是加载了,但是如果一个客户有两个订单,只加载了第一个(时间比较早的)。

[此贴子已经被作者于2017/9/27 15:08:53编辑过]

--  作者:有点蓝
--  发布时间:2017/9/27 16:41:00
--  
所有的代码作用都有限,代码使用是基于场景的,看整个业务逻辑的处理情况来用。不是万金油,什么地方都可以用用。

具体问题贴出代码或者上传例子说明