以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 加载树报错 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=127428) |
-- 作者:我要高飞 -- 发布时间:2018/11/14 0:54:00 -- 加载树报错 在合同表的after_load中的代码 If args(0)="合同表" Then With DataTables("合同表") \'重载关联子表 .loadchildren("合同明细表") .loadchildren("应收日期") End With \'重载关联多列关联表 With DataTables("合同明细表") .loadchildren("订单明细表","fcontractid]+[fentryid","[fcontractinterid]+[fcontractentryid]") .loadchildren("收款明细表","fcontractid]+[fentryid","[fid_src]+[fentryid_src]") End With \'重载关联父表 \' DataTables("收款明细表").loadchildren("收款表","fbillid","fbillid") End If 每次打开项目后,第一次点击加载树里的任何节点的,都能正常显示。但是再点击任意节点时,就会报错: 错误所在事件:加载[收款明细表]失败! 详细错误信息: \')\' 附近有语法错误。 之前合同表、合同明细表等表都是数据库里的表的时候是正常的,把这些表改为查询表以后,就报这个错了。
[此贴子已经被作者于2018/11/14 8:19:55编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/11/14 9:38:00 -- 1、查询表应该不支持使用 loadchildren,请改回数据表
2、你把下面的代码,改成1列,看是否还报错
.loadchildren("订单明细表","fcontractid]+[fentryid","[fcontractinterid]+[fcontractentryid]")
.loadchildren("收款明细表","fcontractid]+[fentryid","[fid_src]+[fentryid_src]")
3、你多列关联的情况,你两列都必须是【字符串列】才行的,不能一列字符串、一列数值
|
-- 作者:我要高飞 -- 发布时间:2018/11/14 10:20:00 -- 查询表是可以执行loadchildren的,项目打开的时候,第一次点加载树的节点,加载的各项子表都是正常的。 并且下面语句执行是正常的,无论加载树怎么操作都不会出错。 .loadchildren("订单明细表","fcontractid]+[fentryid","[fcontractinterid]+[fcontractentryid]") 只有下面这句第二次点加载树节点的时候报错 .loadchildren("收款明细表","fcontractid]+[fentryid","[fid_src]+[fentryid_src]") 所有的关联字段都是整数型的 |
-- 作者:有点甜 -- 发布时间:2018/11/14 10:22:00 -- 那就是你收款明细表的问题。
1、贴出所写的sql语句;
2、复杂的查询表,是不支持loadchildren加载以及loadfilter、load的。 |
-- 作者:我要高飞 -- 发布时间:2018/11/18 13:00:00 -- 研究了一下报错的原因,发现和查询表写的SQL语句有关系 主表和子表都是查询表的情况下 如果主表查询的SQL用了类似inner join这样的多表连接,那么子表也必须是inner join之类的多表连接。如果主表是多表连接,子表用的selece * from xxx这样的单表查询,就会出现loadchildren报错的情况。如果主子表都是单表查询,也是可行的,不会报错。 这个加载子表能改进一下吗? 另外子表查询selec t a.fid_src from a inner join b on a.fitemid=b.fitemid,主表和子表的关联字段是fid_src,如果子表查询a表和b表里都有fid_src字段,调用loadchildren时会提示 列名 \'fid_src\' 不明确。实际子表查询的结果只selecet a.fid_src,并没有显示两个fid_src。
[此贴子已经被作者于2018/11/18 13:09:01编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/11/18 23:35:00 -- 回复5楼,如果提示【不明确】,那么你写列名的时候,要指定 a.fid_src
复杂查询表不支持你这样用的,没办法。如果你确实需要加载,你可以用sqlload或者fill等写sql语句实现加载。 |