以文本方式查看主题

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

--  作者:newsun2k
--  发布时间:2015/4/10 9:53:00
--  动态加载表
我在BeforeLoadOuterTable中使用e.cancel = true初始不加载表
在用户点击功能 后再加载。
但是,加载父表时出现问题,需要同步加载子表。
有无类似datatables("订单").children之类的属性,让我知道当前表有哪些子表?
从而循环加载?

--  作者:Bin
--  发布时间:2015/4/10 9:58:00
--  


--  作者:狐狸爸爸
--  发布时间:2015/4/10 10:03:00
--  

参考:

http://www.foxtable.com/help/topics/2755.htm

 


--  作者:newsun2k
--  发布时间:2015/4/10 10:27:00
--  
谢谢。
不过我实际的问题是,用户点击了一个按钮,打开一张表。
我不想判断他打开的是什么表,然后相应地加载全部的子表。
select case 用户选择的表名
case "订单"
               .load("订单|订单明细")
case "出库单"
......
我的意思是,有无自动地
load(用户选择的表名)
for each t as string in datatables(用户选择的表名)
load(t)
next 
类似这样的,不过无所谓了,我通过_identify is null 控制加载量了

--  作者:newsun2k
--  发布时间:2015/4/10 10:28:00
--  
for each t as string in datatables(用户选择的表名).childrennames
--  作者:Bin
--  发布时间:2015/4/10 10:32:00
--  
看2楼
--  作者:狐狸爸爸
--  发布时间:2015/4/10 10:37:00
--  

结合二楼和三楼的知识,例如要加载产品表,以及其所有的子表:

 

Dim t As String = "产品"
Dim v As String = "产品"
For Each re As Relation In Relations
    If re.ParentTable = t Then
        v = v & "|" & re.ChildTable.Name
    End If
Next
DataTables.Load(v)

 

其实自己设计的系统,那些表要同步加载,是很清楚额,直接写死在代码中并没有关系。

[此贴子已经被作者于2015/4/10 10:38:24编辑过]

--  作者:newsun2k
--  发布时间:2015/4/10 11:05:00
--  
楼主高!!!