Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共13 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

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

1楼
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编辑过]
2楼
有点蓝 发表于:2024/5/23 8:31:00
请举例具体数据说明一下
3楼
yqiushyqiush 发表于:2024/5/23 10:28:00
我希望在查询参考表(物料名称)列选择一个物料后,在查询参考表.配方汇总表筛选出部分行,筛选规则是在查询参考表.配方汇总表.配方明细表中包含有查询参考表的物料名称列刚刚选定的这行物料,还有,如果查询参考表的物料名称列添加了多行物料,依然可以检索查询参考表.配方汇总表.配方明细表是否包含这些物料,如果有,同样可以在查询参考表.配方汇总表中筛选出来,不知是否阐述清楚,请帮忙指导,谢谢!
图片点击可在新窗口打开查看
[此贴子已经被作者于2024/5/23 10:29:57编辑过]
4楼
yqiushyqiush 发表于:2024/5/23 10:34:00
在附件中上传了一个比较清楚的示意图,只是不知是否上传成功,帖子中发了一个小图,清晰的大图直接上传会提示过大
5楼
有点蓝 发表于:2024/5/23 10:35:00
这种要使用模拟关联,参考:http://www.foxtable.com/webhelp/topics/2222.htm

如果看不懂,把这个项目文件发上来我测试一下
6楼
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


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

7楼
有点蓝 发表于: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

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

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

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20240524134708.png
图片点击可在新窗口打开查看
如图
10楼
yqiushyqiush 发表于:2024/5/24 14:03:00
这样对吗?
DataTables("配方汇总表").ReplaceFor("查询筛选辅助列", "ok", "_Identify in ('" & DataTables("配方明细表").GetComboListString("主表关联号", Filter).replace("|", "','") & "')") 
共13 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .23438 s, 2 queries.