以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  同步加载子表数据问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=82954)

--  作者:supwork
--  发布时间:2016/3/28 20:51:00
--  同步加载子表数据问题
在表事件中的 afterload事件中按帮助写 加载明细表事件
e.DataTable.LoadChildren("订单_明细表") 

关联列为 GUID 全球唯一码

数据库为SQL2005

发现部分分页加载时的明细表数据是正常加载的,但部份页面,部份主表数据并无加载明细表数据(经查询,明细表是有对应数据的)


测试示例已上传,请大红袍老师测试一下


以下内容是专门发给
大红袍浏览


[此贴子已经被作者于2016/3/29 11:15:28编辑过]

--  作者:大红袍
--  发布时间:2016/3/28 20:55:00
--  

不加载,肯定是不对应,多一个字符少一个字符就是不对应啊。或者你试试

 

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

 


--  作者:supwork
--  发布时间:2016/3/28 21:14:00
--  
这说法不成立

比如 主表的 GUID  是29F06F6D-3CCD-409E-86C0-B326CBF659A6  这个的数据行

我在另一个系统里全部加载数据,在明细表中GUID 用等于 过滤这个29F06F6D-3CCD-409E-86C0-B326CBF659A6数据是有值的呀


如果有字符多或少的情况 则 等于 筛选 就不应该有值 。 并且在两个表中都对GUID列进行等于筛选 都有值


在对此进行测试前 有时发现明细表没有数据觉得奇怪,今天就做了个测试 

在正式测试之前 已用SQL命令 清除了多余数据,即明细表有数据,主表一定有数据,主表有数据明细表一定有数据

[此贴子已经被作者于2016/3/28 21:18:12编辑过]

--  作者:supwork
--  发布时间:2016/3/28 21:27:00
--  
测试结果 AFTERLOAD事件改成

Dim ids As String
For Each dr As DataRow In DataTables("订单_主表").DataRows
    ids = ids & "," & dr("GUID")
Next
ids= ids.Trim(",")
ids = ids.Replace(",","\',\'")
ids = "(\'" & ids & "\')"
msgbox(ids)
DataTables("订单_明细表").LoadFilter = "GUID In " & ids
DataTables("订单_明细表").Load()

发现效果 与 之前一样

(\'51EFD233-7560-4D1D-9F6D-03B718E95FC6\',\'AD22FB39-427E-4047-B74D-B924CCD57A90\',\'9DA5703B-BFBE-47E3-BBE8-1E2C192622DC\',\'23D38957-4032-4CA3-A90E-4CA83E612AAF\',\'7F5AA3A1-39E5-4033-A6AF-E8E27449D313\',\'3F402FC6-80F6-4D5D-947E-F458569C643D\',\'BA908C7C-7698-48B7-A636-7EAD711FF22F\',\'697521A2-3BDA-4374-8B60-47B9C99864B4\',\'E2D7E14E-12C1-4F45-9307-31A0F70DE96D\',\'DC418290-DCFE-4571-A6CD-EC3FEF5FE71D\',\'DEBDCCF8-CE0C-4A73-BC56-933D25564CBC\',\'27C42F41-E5EF-44DC-81EB-40F793CB14AB\',\'BE740C2D-3DB3-4EA5-872E-0C206E050B57\',\'92A527CE-6BCE-4631-96E9-53F75D182A6E\',\'FAFE8B34-9C98-4828-AF59-4AF9D86DACD2\',\'32AB1DCE-B6E7-4079-BC74-A60DD5DB7CD7\',\'4DFD8802-6119-45C0-830F-1AFFF5F5F522\',\'3F259415-2EE3-4FD6-8EF4-366138BACD68\',\'995F7C66-80AB-4894-BFFC-9CBF8B646470\',\'29F06F6D-3CCD-409E-86C0-B326CBF659A6\')

出问题的 GUID 号 在 msgbox(ids) 中是正常的,在两个表中均 有数据的
但是在 关联表就是没数据出来


比如 这个GUID29F06F6D-3CCD-409E-86C0-B326CBF659A6的值  明细表就不加载





经测试 订单_主表 的单击事件 中写代码
Dim sw As String = e.Table.Current("GUID")
DataTables("订单_明细表").LoadFilter = "GUID = \'" & sw & "\'"
DataTables("订单_明细表").Load()
则所有主表的行单击时均有 明细表数据加载


这给人一种 FT不可控的感觉 

官方常规的编程方法导致 执行效果达不到预期效果 要花费大量的时间调试,唉

[此贴子已经被作者于2016/3/28 21:34:59编辑过]

--  作者:大红袍
--  发布时间:2016/3/28 21:50:00
--  

不可能,肯定是你哪里做错导致的问题。你做一个例子肯定没有问题。

 

关联表没有出来:数据加载出来了没有?没有加载出来,是条件不对,还是在关联表就限制了加载?比如行数之类的。

 

上传实例。


--  作者:大红袍
--  发布时间:2016/3/28 21:51:00
--  

加载的时候控制好加载页数和加载行数啊

 

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

 


--  作者:supwork
--  发布时间:2016/3/28 22:23:00
--  
使用官方加载树的,每页30行



--  作者:大红袍
--  发布时间:2016/3/28 22:35:00
--  
 例子说明,不可能存在你说的问题。
--  作者:supwork
--  发布时间:2016/3/29 11:16:00
--  
测试示例已上传,请大红袍老师测试一下
--  作者:大红袍
--  发布时间:2016/3/29 11:38:00
--  

 

[此贴子已经被作者于2016/3/29 11:37:44编辑过]