以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]筛选关联表 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191994) |
-- 作者:yqiushyqiush -- 发布时间:2024/5/22 18:52:00 -- [求助]筛选关联表 你好!我想在表A的DataColChanged事件中,用Filter属性筛选出关联表表B,筛选条件是表B的关联表表C某一列(比如m列)所有等于表A当前行这一列的值,请问我的代码应该如何编写?谢谢!假设A、B表用关联一,B、C表用关联二 [此贴子已经被作者于2024/5/22 18:53:04编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/5/23 8:31:00 -- 请举例具体数据说明一下 |
-- 作者:yqiushyqiush -- 发布时间:2024/5/23 10:28:00 -- 我希望在查询参考表(物料名称)列选择一个物料后,在查询参考表.配方汇总表筛选出部分行,筛选规则是在查询参考表.配方汇总表.配方明细表中包含有查询参考表的物料名称列刚刚选定的这行物料,还有,如果查询参考表的物料名称列添加了多行物料,依然可以检索查询参考表.配方汇总表.配方明细表是否包含这些物料,如果有,同样可以在查询参考表.配方汇总表中筛选出来,不知是否阐述清楚,请帮忙指导,谢谢! [此贴子已经被作者于2024/5/23 10:29:57编辑过]
|
-- 作者:yqiushyqiush -- 发布时间:2024/5/23 10:34:00 -- 在附件中上传了一个比较清楚的示意图,只是不知是否上传成功,帖子中发了一个小图,清晰的大图直接上传会提示过大 |
-- 作者:有点蓝 -- 发布时间:2024/5/23 10:35:00 -- 这种要使用模拟关联,参考:http://www.foxtable.com/webhelp/topics/2222.htm 如果看不懂,把这个项目文件发上来我测试一下
|
-- 作者:yqiushyqiush -- 发布时间: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 目前可以实现功能,但是执行效率比较低,用模拟关联会效率高一些吗? |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2024/5/24 13:51:00 -- 关联关系如图,DataTables("配方汇总表").ReplaceFor("查询筛选辅助列", "ok","关联列 in (\'" & DataTables("配方明细表").GetComboListString("关联列",Filter).replace("|","\',\'") & "\')") 这行代码中关联列应如何填写 [此贴子已经被作者于2024/5/24 13:51:22编辑过]
|
-- 作者:yqiushyqiush -- 发布时间:2024/5/24 13:54:00 -- 此主题相关图片如下:微信截图_20240524134730.png |
-- 作者:yqiushyqiush -- 发布时间:2024/5/24 14:03:00 -- 这样对吗? DataTables("配方汇总表").ReplaceFor("查询筛选辅助列", "ok", "_Identify in (\'" & DataTables("配方明细表").GetComboListString("主表关联号", Filter).replace("|", "\',\'") & "\')")
|