Foxtable(狐表)用户栏目专家坐堂 → loadchildren查询过于复杂


  共有3367人关注过本帖树形打印复制链接

主题:loadchildren查询过于复杂

帅哥哟,离线,有人找我吗?
yancheng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
loadchildren查询过于复杂  发帖心情 Post By:2016/12/5 20:18:00 [只看该作者]

入库明细:afterload 事件:e.DataTable.LoadChildren("材料","定额编码","定额编码")
主要我感觉是我:采购入库的窗口中有一个;材料,的图片。是关联的,材料-图片。
图片点击可在新窗口打开查看此主题相关图片如下:77.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/5 21:05:00 [只看该作者]

去掉这句代码能不能加载?

 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/12/6 10:46:00 [只看该作者]

我看一下,是因为,我在,材料表,afterload ,里面也加入了:'e.DataTable.LoadChildren("入库明细","定额编码","定额编码")
这样,在入库明细,执行e.DataTable.LoadChildren("材料","定额编码","定额编码")时,材料表,也执行上面代码,形成循环了吧?
要怎么处理?

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/6 10:51:00 [只看该作者]

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

 

SystemReady = false

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

SystemReady = true


 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/12/6 10:51:00 [只看该作者]

我在;入库明细:代码改成:Systemready = False
e.DataTable.LoadChildren("材料","定额编码","定额编码")
Systemready = True
材料表的不变。
还是一样的弹错。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/6 10:57:00 [只看该作者]

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

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/6 11:33:00 [只看该作者]

那就换其它方式,不要在afterload里互相加载了

 回到顶部
帅哥哟,离线,有人找我吗?
wjl-se
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:771 积分:6388 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2016/12/6 14:00:00 [只看该作者]

 e.DataTable.LoadChildren("材料","定额编码","定额编码")  这种是没建立关联的语法,看一楼好像是已经建立关联了,那就直接e.DataTable.LoadChildren("材料")就行了

 回到顶部
总数 23 1 2 3 下一页