Foxtable(狐表)用户栏目专家坐堂 → 组合多表数据


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

主题:组合多表数据

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
组合多表数据  发帖心情 Post By:2016/8/8 23:18:00 [只看该作者]

红袍老师还没休息啊。问一个问题:

想实现:

在一个窗口里,有两个表,如下图:


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160808231046.png
图片点击可在新窗口打开查看
想实现右边也显示左边的同样的会员卡号的所有的行。

现在只是选中行,要显示左边同样的行。

我知道中文怎么做,就是 左边的表加载后,将左边表的 所有【会员卡号】做为右边表【会员卡号】的加载条件。

另外,就是两个表同样会员卡号行的位置要一样。即使排序之后。为了看起来就像一张表。

为什么想这样做:这样的话就可以不用组合多个表加载、统计,而是都是加载或者统计单个表,而在窗口放在了一起。这样也许能提高加载效率。


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/8/8 23:18:00 [只看该作者]

不知道能不能实现。。。

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/9 8:40:00 [只看该作者]

加载:
如果加载条件是通用的,这样:Tables("表B").Filter = Tables("表A").Filter
如果不通用,这样
Tables("表B").Filter = "会员卡号 in ('" & DataTables("表A").GetComboListString("会员卡号",Tables("表A").Filter).Replace("|","','") & "')"

排序必须要有相同的排序字段,否则没有办法一样,简单就这样
Tables("表B").Sort = Tables("表A").Sort


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/8/9 9:01:00 [只看该作者]

谢谢 Hyphen 老师,比如左表排序之后,行的位置就改变了。想要右表也的行也随着变化。两个表都有【会员卡号】的字段。

不知道有没有

Tables("表B").col("会员卡号").Position = Tables("表A").col("会员卡号").Position
类似的功能。右表【会员卡号】字段各个行的位置= 左表【会员卡号】字段各个行的位置。
 
两个表的排序字段不一样。
[此贴子已经被作者于2016/8/9 9:03:37编辑过]

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/9 9:26:00 [只看该作者]

没有这种用法

排序字段必须一致,否则没有办法比较顺序

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/8/9 9:37:00 [只看该作者]

第一步按照老师的方法可以实现了:


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
 

[此贴子已经被作者于2016/8/9 9:42:11编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/8/9 9:41:00 [只看该作者]

哦。或者说将这两个表不可见,另外做一个显示表。将这两个表的数据合并在一起。

因为已经是加载好的表了。相比用加载、统计效率是不是应该会更高一点。

这样可行吗?

[此贴子已经被作者于2016/8/9 9:41:53编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/9 9:45:00 [只看该作者]

 循环左表的每一行,去右表查询对应的行,修改sortkey值为相同的值,即可。

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/8/9 9:50:00 [只看该作者]

恩恩。谢谢 红袍老师,刚发现用两个表来显示不好,因为有滚动条,一个表往下拉的时候,没有代码可以让另一个表同时往下拉吧?哈哈。

所以我想另外做一个显示表,将两个表的数据都放在这个显示表。

这样就不存在排序、拖动滚动条 不同步 的问题。

FT的特色功能不熟悉。。。不知道怎么弄。。。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/9 10:05:00 [只看该作者]

AfterScroll  


If Forms("窗口1").Opened Then
   Dim tbl As Table = Tables("窗口1_Table2")
   If e.Table.TopVisibleRow <> tbl.TopVisibleRow Then
      tbl.TopVisibleRow = e.Table.TopVisibleRow
      e.Table.TopVisibleRow = e.Table.TopVisibleRow '此行不可少,确保第一个可见行完整显示
   End If
End If


 回到顶部
总数 24 1 2 3 下一页