Foxtable(狐表)用户栏目专家坐堂 → [求助]筛选关联表


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

主题:[求助]筛选关联表

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


加好友 发短信
等级:婴狐 帖子:16 积分:232 威望:0 精华:0 注册:2022/11/1 10:50:00
[求助]筛选关联表  发帖心情 Post By:2024/5/22 18:52:00 [只看该作者]

你好!我想在表A的DataColChanged事件中,用Filter属性筛选出关联表表B,筛选条件是表B的关联表表C某一列(比如m列)所有等于表A当前行这一列的值,请问我的代码应该如何编写?谢谢!假设A、B表用关联一,B、C表用关联二
[此贴子已经被作者于2024/5/22 18:53:04编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/23 8:31:00 [只看该作者]

请举例具体数据说明一下

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


加好友 发短信
等级:婴狐 帖子:16 积分:232 威望:0 精华:0 注册:2022/11/1 10:50:00
  发帖心情 Post By:2024/5/23 10:28:00 [只看该作者]

我希望在查询参考表(物料名称)列选择一个物料后,在查询参考表.配方汇总表筛选出部分行,筛选规则是在查询参考表.配方汇总表.配方明细表中包含有查询参考表的物料名称列刚刚选定的这行物料,还有,如果查询参考表的物料名称列添加了多行物料,依然可以检索查询参考表.配方汇总表.配方明细表是否包含这些物料,如果有,同样可以在查询参考表.配方汇总表中筛选出来,不知是否阐述清楚,请帮忙指导,谢谢!
图片点击可在新窗口打开查看
[此贴子已经被作者于2024/5/23 10:29:57编辑过]

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


加好友 发短信
等级:婴狐 帖子:16 积分:232 威望:0 精华:0 注册:2022/11/1 10:50:00
  发帖心情 Post By:2024/5/23 10:34:00 [只看该作者]

在附件中上传了一个比较清楚的示意图,只是不知是否上传成功,帖子中发了一个小图,清晰的大图直接上传会提示过大

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/23 10:35:00 [只看该作者]

这种要使用模拟关联,参考:http://www.foxtable.com/webhelp/topics/2222.htm

如果看不懂,把这个项目文件发上来我测试一下

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


加好友 发短信
等级:婴狐 帖子:16 积分:232 威望:0 精华:0 注册:2022/11/1 10:50:00
  发帖心情 Post By:2024/5/24 11:13:00 [只看该作者]


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

在查询参考表DataColChanged事件添加如下代码:


If e.DataCol.Name = "物料名称" Then

    DataTables("配方汇总表").StopRedraw '停止绘制

    DataTables("配方汇总表").ReplaceFor("查询筛选辅助列", Nothing) 

    Dim Filter As String = "[物料名称] = '" & e.DataRow("物料名称") & "'"

    Dim dr As DataRow = e.DataRow

    dr("查询筛选辅助列") = "ok" 

    Dim drs As List(Of DataRow)

    Dim pr As DataRow

    drs = DataTables("配方明细表").Select(Filter)

    For Each dr1 As DataRow In drs

        pr = dr1.GetParentrow("配方汇总表")

        pr("查询筛选辅助列") = "ok"

    Next 

    DataTables("配方汇总表").ResumeRedraw '恢复绘制

End If


目前可以实现功能,但是执行效率比较低,用模拟关联会效率高一些吗?


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/24 11:34:00 [只看该作者]

If e.DataCol.Name = "物料名称" Then

    DataTables("配方汇总表").StopRedraw '停止绘制

    DataTables("配方汇总表").ReplaceFor("查询筛选辅助列", Nothing) 

    Dim Filter As String = "[物料名称] = '" & e.DataRow("物料名称") & "'"

    Dim dr As DataRow = e.DataRow

    dr("查询筛选辅助列") = "ok" 

DataTables("配方汇总表").ReplaceFor("查询筛选辅助列", "ok","关联列 in ('" & DataTables("配方明细表").GetComboListString("关联列",Filter).replace("|","','") & "')"

    DataTables("配方汇总表").ResumeRedraw '恢复绘制

End If


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


加好友 发短信
等级:婴狐 帖子:16 积分:232 威望:0 精华:0 注册:2022/11/1 10:50:00
  发帖心情 Post By:2024/5/24 13:51:00 [只看该作者]

关联关系如图,DataTables("配方汇总表").ReplaceFor("查询筛选辅助列", "ok","关联列 in ('" & DataTables("配方明细表").GetComboListString("关联列",Filter).replace("|","','") & "')") 这行代码中关联列应如何填写
[此贴子已经被作者于2024/5/24 13:51:22编辑过]

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


加好友 发短信
等级:婴狐 帖子:16 积分:232 威望:0 精华:0 注册:2022/11/1 10:50:00
  发帖心情 Post By:2024/5/24 13:54:00 [只看该作者]


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

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

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


加好友 发短信
等级:婴狐 帖子:16 积分:232 威望:0 精华:0 注册:2022/11/1 10:50:00
  发帖心情 Post By:2024/5/24 14:03:00 [只看该作者]

这样对吗?
DataTables("配方汇总表").ReplaceFor("查询筛选辅助列", "ok", "_Identify in ('" & DataTables("配方明细表").GetComboListString("主表关联号", Filter).replace("|", "','") & "')") 

 回到顶部
总数 13 1 2 下一页