以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  同步加载  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91215)

--  作者:seal51
--  发布时间:2016/10/3 17:24:00
--  同步加载

订单主表,订单明细表, 通过订单ID关联

产品表, 订单明细表,通过产品ID关联, 产品名称为表达式(=产品表.产品名称)

 

订单表通过e.DataTable.LoadChildren("订单明细表")同步加载后, 订单明细表只显示产品ID,产品名称不显示, 如何显示(同步)


--  作者:狐狸爸爸
--  发布时间:2016/10/3 19:35:00
--  
我测试没有问题
--  作者:seal51
--  发布时间:2016/10/3 22:42:00
--  

谢谢狐狸爸爸,但是打开订单和订单明细表, 产品表并没有加载,产品名称如何显示??


--  作者:seal51
--  发布时间:2016/10/3 23:04:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:订单111smsm.foxdb

上传个例子
--  作者:狐狸爸爸
--  发布时间:2016/10/4 6:49:00
--  
这个没办法,要显示订单表,必须加载同步加载对应的产品。

代码不要写在Afterload事件,分别做两个按钮:

按加载产品:

DataTables("产品表").LoadFilter = ""
DataTables("产品表").load()
DataTable(产品表).LoadChildren("订单明细")

按订单加载:
DataTables("订单").LoadFilter = ""
DataTables("订单").load()
DataTables("订单").LoadChildren("订单明细")
DataTables("订单明细").LoadChildren("产品表","产品ID","产品ID")



--  作者:seal51
--  发布时间:2016/10/4 9:25:00
--  

谢谢狐狸爸爸的回复!节日快乐!

但是,这样多麻烦, 难道我这样设计不好, 应该如何设计呢?


--  作者:狐狸爸爸
--  发布时间:2016/10/4 9:41:00
--  
如果全部写在AfterLoad事件会有死循环。

加载订单→订单的AfterLoad加载订单明细→订单明细的AfterLoad加载产品→产品的AfterLoad加载订单明细→订单明细的AfterLoad加载产品→产品的AfterLoad加载订单明细.....


--  作者:seal51
--  发布时间:2016/10/4 9:59:00
--  
哦,你们是如何设计的,一般不都是这么设计吗?
--  作者:狐狸爸爸
--  发布时间:2016/10/4 10:34:00
--  
如果要写在AfterLoad事件中。
要么根据产品加载订单明细。
要么根据订单加载订单明细,再根据订单明细加载产品。

只能二选择一。

我给你的建议
1、产品表的行不会多,所以默认全部加载即可。
2、订单和订单明细默认不加载
3、订房单表的Afterload事件:
e.DataTable.LoadChildren("订单明细")

--  作者:seal51
--  发布时间:2016/10/4 14:22:00
--  

产品的行很多, 已有5000行了,怎么办?