以文本方式查看主题 - 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编辑过]
|