以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 筛选显示重复的数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=103858) |
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/7/18 17:38:00 -- 筛选显示重复的数据 窗口中的表Table1是A表的副本,现要查找表中【产品编号】列和【批号】列内容都相同的行,并且同产品编号的商品在一起显示。 例如: 产品编号 批号 (表中还有多列,在此省略) C0001 PH111 C0001 PH111 C0001 PH111 C0008 PH222 C0008 PH222 ............... 先谢了! (另,数据有上千条以上之多。) [此贴子已经被作者于2017/7/18 17:38:53编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2017/7/18 17:45:00 -- 参考
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=76545&replyID=529794&skin=1
|
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/7/18 18:28:00 -- 看不懂 按代码修改后 也不行,还是麻烦老师帮帮忙,辛苦帮我写下代码。不胜感激! |
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/7/18 20:00:00 -- 相当于:一、Tables("窗口1_Table1").RepeatFilter("产品编号", 0) and Tables("窗口1_Table1").RepeatFilter("批号", 0) 二、对上面筛选出来的结果再把同“产品编号”的商品挨在一起排列。
|
||||
-- 作者:有点蓝 -- 发布时间:2017/7/18 20:24:00 -- 改列名和表名就可以 Dim cs As String = "产品编号,批号"
For Each dr As DataRow In DataTables("窗口1_Table1").Select("", cs) |
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/7/18 20:40:00 -- 这是完整的代码,点击按钮无反应。 Dim idx As String = "-1," Dim idx_temp As String = "" Dim pdr As DataRow = Nothing Dim count As Integer = 0 Dim cs As String = "产品编号,批号" For Each dr As DataRow In Tables("计划来货登记表查询主窗口_Table1").DataTable.Select("", cs) Dim flag As Boolean = False If pdr IsNot Nothing Then For Each c As String In cs.split(",") If pdr(c) <> dr(c) Then flag = True Exit For End If Next End If If flag Then If count > 1 Then idx &= idx_temp End If count = 1 idx_temp = "" Else count += 1 idx_temp &= dr("_Identify") & "," End If pdr = dr Next If count > 1 Then idx &= idx_temp End If Tables("计划来货登记表查询主窗口_Table1").Filter = "_Identify not in (" & idx.trim(",") & ")"
|
||||
-- 作者:有点蓝 -- 发布时间:2017/7/18 20:48:00 -- 代码测试没有问题,上传实例说明 |
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/7/18 21:24:00 --
|
||||
-- 作者:有点蓝 -- 发布时间:2017/7/18 22:14:00 -- With e.Form.Controls("Table1").Table .Sort = "产品编号,批号" Dim count As Integer = 1 For i As Integer = .Rows.count - 1 To 1 Step -1 If .Rows(i)("产品编号") = .Rows(i-1)("产品编号") AndAlso .Rows(i)("批号") = .Rows(i-1)("批号") count = 0 Continue For Else count += 1 If count > 1 Then .Rows(i).Remove End If End If Next If Not (.Rows(0)("产品编号") = .Rows(1)("产品编号") AndAlso .Rows(0)("批号") = .Rows(1)("批号")) Then .Rows(0).Remove End If End With
|
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/7/18 22:16:00 -- 大神,收下我的膝盖吧 ,谢谢 |