以文本方式查看主题

-  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=145451)

--  作者:jick0526
--  发布时间:2020/1/20 13:42:00
--  关联表加载问题
老师,请问下,关联表有没有办法同时加载,比如我父表默认打开是100行,子表是10行,两个表关联时,父表点某行,子表却没任何数据显示,因为只加载了10行,要回到子表重新加载后,才能看到,我想父表点某行时,子表也同时加载,该怎么弄,谢谢!
--  作者:有点蓝
--  发布时间:2020/1/20 13:54:00
--  
参考:http://www.foxtable.com/webhelp/topics/2228.htm


--  作者:jick0526
--  发布时间:2020/1/21 15:04:00
--  
老师,下面的代码我试了,好像不行,我是父表加载树点101,父表的101数据加载出来了,但是关联表子表的101数据却没加载出来,是哪里出错了?我是网络版的,父表和子表默认加载都是10行,我想父表点击加载树时,子表的数据也同时加载


If DataTables(
"订单").DataRows.Count = 0 Then \'如果订单表没有数据
    DataTables(
"订单明细").LoadFilter = "订单ID Is Null" \'不加载订单明细
Else
    Dim 
ids As String
    For Each 
dr As DataRow In DataTables("订单").DataRows
        
ids = ids & "," & dr("订单ID")
    Next
    
idsids.Trim(",")
    DataTables(
"订单明细").LoadFilter = "订单ID In (" & ids & ")"
End If
DataTables(
"订单明细").Load()
--  作者:有点蓝
--  发布时间:2020/1/21 15:08:00
--  
代码写到父表表事件afterload事件。子表必须加载父表已加载数据对应的所有明细,不能只加载10行

If DataTables("订单").DataRows.Count = 0 Then \'如果订单表没有数据
    DataTables(
"订单明细").LoadFilter = "订单ID Is Null" \'不加载订单明细
Else
    Dim 
ids As String
    For Each 
dr As DataRow In DataTables("订单").DataRows
        
ids = ids & "," & dr("订单ID")
    Next
    
idsids.Trim(",")
    DataTables(
"订单明细").LoadFilter = "订单ID In (" & ids & ")"
End If
DataTables("订单明细").Loadtop = nothing \'去掉10行的限制
DataTables(
"订单明细").Load()

--  作者:jick0526
--  发布时间:2020/1/21 16:21:00
--  
老师,可能是我表达错了,我想要的是在一个关联表内,上面是父表,下面是子表,软件打开时,父表和子表都是随机10行的,
我在父表的加载树点101时,我想父表和子表两个表的加载树同时都加载服务器上101的数据,因为数据太多了,如果说子表必须
加载父表已加载数据对应的所有明细,那么相当于我如果要看101的数据,就先得把子表的101数据在加载树点一下,然后在回到父表
点一下加载树101,那这样子的话,我不明白上面的代码存在的意义在哪里?因为如果两个表我都手动点加载了,那关联表就可以看到
了,不需要上面的代码也可以做到,我以前是软件打开时,子表默认加载全部行,大概几万行,我父表关联子表,父表随便点个订单号
就能看到子表的数据,现在网络不行情况下,我就想默认加载10行,然后用代码实现父表加载某个订单号时,子表也同时从服务器上加载
对应订单号的数据,说的有点多,不知道有没有表达正确,麻烦老师帮我看下,谢谢!

--  作者:有点蓝
--  发布时间:2020/1/21 16:29:00
--  
这种情况,子表没有必要使用加载树了,子表的数据完全依赖父表的加载结果。使用上面的代码只需要点击父表的加载树,子表就同步加载了,没有必要再去点击子表的加载树
--  作者:jick0526
--  发布时间:2020/1/21 16:50:00
--  
我刚才就是点击父表的加载树,父表的全部显示出来了,但是子表却是空白
--  作者:有点蓝
--  发布时间:2020/1/21 16:53:00
--  
用错代码了吧,或者和其它代码有冲突。使用内部表做个例子发上来看看
--  作者:jick0526
--  发布时间:2020/1/21 16:55:00
--  
老师,刚又测试了下,可以了,谢谢!