以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  问一个关于关联表动态加载的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129934)

--  作者:chen37280600
--  发布时间:2019/1/9 10:15:00
--  问一个关于关联表动态加载的问题
1先看帮助文档标准说法:

加载多个表

可以一次加载多个表,表名和表名之间用符号“|”隔开。

示例

If DataTables.Contains("产品") = False Then
    DataTables.
Load("产品|订单|订单明细")
End If

重要提示:

如果两个或多个表之间建立了关联,那么这些表必须在同一个Load方法中同时加载,不可以分别加载。


2假设现在有3个表,订单主表,订单明细表,商品档案。订单主表与订单明细表建立关系,订单明细表与商品档案建立关系。

平时业务流程就是,新建一个订单,然后在明细表里,选择多个商品添加进去。这个是个很普通的业务流程


3正常情况下,DataTables.Load("订单主表|订单明细表|商品档案") ,系统后续使用不会产生什么问题。


4但是。有时候,客户只需要修改商品档案,而商品档案,这个表刚好作为关联的最后一环,只加载它也不会报错(如果是订单主表+明细表,只加载一个就不行咯,不用说都知道会报错)。这时候我会只加载了商品档案进去。这时候再打开订单模块,加载DataTables.Load("订单主表|订单明细表|商品档案")就有问题了,重复加载商品档案里。




问:你们是怎么解决这个问题?难道所有关联表,只加载其中一个,哪怕是最后一个无关紧要的表,也把所有的关联都加进去?




--  作者:有点甜
--  发布时间:2019/1/9 10:23:00
--  

1、如果不需要用到关联表、不需要用到表达式列(引用父表数据、统计子表)数据,那就不需要设置关联的,或者你可以一个一个表的加载出来。

 

2、如果你需要关联的一些功能,那么你就必须一起加载出来了。你可以先卸载存在的表,再一起加载。


--  作者:chen37280600
--  发布时间:2019/1/9 10:56:00
--  回复:(有点甜)1、如果不需要用到关联表、不需要用到...
这还要判断哪些加载了,卸载回去再来,感觉效率更低了。

那问一个,如果我把没有关联的表,联合加载,有问题吗?DataTables.Load("商品档案|学生档案|员工档案")

--  作者:有点甜
--  发布时间:2019/1/9 10:58:00
--  
以下是引用chen37280600在2019/1/9 10:56:00的发言:

那问一个,如果我把没有关联的表,联合加载,有问题吗?DataTables.Load("商品档案|学生档案|员工档案")

 

没问题。


--  作者:2621556
--  发布时间:2019/1/23 18:04:00
--  
多次实验,在窗口中创建两个sqltable表并建立关联,无法将关联表加入窗口显示。不知为什么?
--  作者:有点甜
--  发布时间:2019/1/23 21:44:00
--  
以下是引用2621556在2019/1/23 18:04:00的发言:
多次实验,在窗口中创建两个sqltable表并建立关联,无法将关联表加入窗口显示。不知为什么?

 

试试用这种方式添加关联表。

 

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

 

如果不行,实例发上来测试。