Foxtable(狐表)用户栏目专家坐堂 → 同步加载子表数据问题


  共有2415人关注过本帖树形打印复制链接

主题:同步加载子表数据问题

帅哥哟,离线,有人找我吗?
supwork
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
同步加载子表数据问题  发帖心情 Post By:2016/3/28 20:51:00 [显示全部帖子]

在表事件中的 afterload事件中按帮助写 加载明细表事件
e.DataTable.LoadChildren("订单_明细表") 

关联列为 GUID 全球唯一码

数据库为SQL2005

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


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


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


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

 回到顶部
帅哥哟,离线,有人找我吗?
supwork
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
supwork
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2016/3/28 22:23:00 [显示全部帖子]

使用官方加载树的,每页30行



 回到顶部
帅哥哟,离线,有人找我吗?
supwork
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2016/3/29 11:16:00 [显示全部帖子]

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

 回到顶部
帅哥哟,离线,有人找我吗?
supwork
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2016/3/29 11:43:00 [显示全部帖子]

我在订单分类 里面标记 为A的数据 都不能通过 正常的明细表加载方式 加载。 就算将关联列改成 数字列 也是一样的毛病

如果代码改成 单击 加载本主表当前行的 明细表数据,则所有的明细数据加载是正常的


如果说是数据有问题,那么按FT的 单击加载数据也不应该加载进来,问题是 按

Dim sw As String = e.Table.Current("FID")

DataTables("订单_明细表").LoadFilter = "FID = " & sw & ""
DataTables("订单_明细表").Load()

按这个可以加载进来 

Dim ids As String
For Each dr As DataRow In DataTables("订单_主表").DataRows
    ids = ids & "," & dr("FID")
Next
ids= ids.Trim(",")
'ids = ids.Replace(",","','")
ids = "(" & ids & ")"
msgbox(ids)           ‘这个值市调式是正常的
DataTables("订单_明细表").LoadFilter = "FID In " & ids
DataTables("订单_明细表").Load()

这样确加载不到这条数据,确实找不出原因。


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

 回到顶部
帅哥哟,离线,有人找我吗?
supwork
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2016/3/29 11:57:00 [显示全部帖子]

你测试 到这个公司


此主题相关图片如下:12121212121.png
按此在新窗口浏览图片


那些标记A的 都不能正常加载


1、你的明细表设置了默认加载10行 动态加载的意义 不就是初始不加载任何数据。


如果是这个原因 那么明细表 要么总共每次加载10条数据,但事实明显不是这样的


这些没有加载 的数据 有的是一条,有的是两条,有的是多条,和那些能正常加载的数据并无异样



 回到顶部