以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  loadchildren查询过于复杂  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93733)

--  作者:yancheng
--  发布时间:2016/12/5 20:18:00
--  loadchildren查询过于复杂
入库明细:afterload 事件:e.DataTable.LoadChildren("材料","定额编码","定额编码")
主要我感觉是我:采购入库的窗口中有一个;材料,的图片。是关联的,材料-图片。
图片点击可在新窗口打开查看此主题相关图片如下:77.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2016/12/5 21:05:00
--  
去掉这句代码能不能加载?
--  作者:yancheng
--  发布时间:2016/12/6 10:46:00
--  
我看一下,是因为,我在,材料表,afterload ,里面也加入了:\'e.DataTable.LoadChildren("入库明细","定额编码","定额编码")
这样,在入库明细,执行e.DataTable.LoadChildren("材料","定额编码","定额编码")时,材料表,也执行上面代码,形成循环了吧?
要怎么处理?

--  作者:有点色
--  发布时间:2016/12/6 10:51:00
--  

 如果想不形成循环,这样写

 

SystemReady = false

e.DataTable.LoadChildren("材料","定额编码","定额编码")

SystemReady = true


--  作者:yancheng
--  发布时间:2016/12/6 10:51:00
--  
我在;入库明细:代码改成:Systemready = False
e.DataTable.LoadChildren("材料","定额编码","定额编码")
Systemready = True
材料表的不变。
还是一样的弹错。

--  作者:有点蓝
--  发布时间:2016/12/6 10:53:00
--  
加个全局变量canload,逻辑型

if vars("canload") = true then
    vars("canload") = false
e.DataTable.LoadChildren("入库明细","定额编码","定额编码")
vars("canload") = true
end if


if vars("canload") = true then
    vars("canload") = false
e.DataTable.LoadChildren("材料","定额编码","定额编码")
vars("canload") = true
end if

--  作者:有点色
--  发布时间:2016/12/6 10:57:00
--  

 如果提示【查询过于复杂】,有可能是你数据量过多造成的。

 

 你试试这种方法,看生成的查询语句是什么 http://www.foxtable.com/webhelp/scr/2228.htm

 


--  作者:yancheng
--  发布时间:2016/12/6 11:30:00
--  
加个全局变量canload,逻辑型(不管是:原始量不设置,还是设置为:true)都 不行。还是说查询过复杂 。我数据量不大。

if vars("canload") = true then
    vars("canload") = false
e.DataTable.LoadChildren("入库明细","定额编码","定额编码")
vars("canload") = true
end if


if vars("canload") = true then
    vars("canload") = false
e.DataTable.LoadChildren("材料","定额编码","定额编码")
vars("canload") = true
end if


--  作者:有点蓝
--  发布时间:2016/12/6 11:33:00
--  
那就换其它方式,不要在afterload里互相加载了
--  作者:wjl-se
--  发布时间:2016/12/6 14:00:00
--  
 e.DataTable.LoadChildren("材料","定额编码","定额编码")  这种是没建立关联的语法,看一楼好像是已经建立关联了,那就直接e.DataTable.LoadChildren("材料")就行了