Foxtable(狐表)用户栏目专家坐堂 → [求助]多列内容,如何排除重复值?


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

主题:[求助]多列内容,如何排除重复值?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/5 10:13: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 DataTables("表A").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
    End If
    idx_temp &= dr("_Identify") & ","
    pdr = dr
Next

If count > 1 Then
    idx &= idx_temp
End If

Tables("表A").filter = "_Identify in (" & idx.trim(",") & ")"


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/5 10:18:00 [显示全部帖子]

 不能,高级筛选那里,只能单列的。你直接用代码吧,指定列和表即可。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/5 10:35:00 [显示全部帖子]

代码没有问题,如果卡机,做个具体的foxtable例子上来看看。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/5 10:59:00 [显示全部帖子]

 

[此贴子已经被作者于2016/4/5 11:24:51编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/5 11:22:00 [显示全部帖子]

 汗,哪里重复啊,品名规格不同啊。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/5 11:37:00 [显示全部帖子]

Dim idx As String = "-1,"
Dim pdr As DataRow = Nothing
Dim cs As String = "客户,工序"
Dim flag As Boolean
For Each dr As DataRow In DataTables("询价表").Select("客户 is not null and 工序 is not null", cs)
   
    flag = 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
        idx &= pdr("_Identify") & ","
    End If
    pdr = dr
Next
If flag = True Then
    idx &= pdr("_Identify") & ","
End If

Tables("询价表").filter = "_Identify in (" & idx.trim(",") & ") and 客户 is not null and 工序 is not null"


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/5 15:31:00 [显示全部帖子]

12楼测试,没问题。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/5 15:56:00 [显示全部帖子]

你15楼的意思,是不是说少了一个?

 

Dim idx As String = "-1,"
Dim pdr As DataRow = Nothing
Dim cs As String = "客户,工序"
Dim flag As Boolean
For Each dr As DataRow In DataTables("询价表").Select("客户 is not null and 工序 is not null", cs)
    flag = 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
        idx &= pdr("_Identify") & ","
    End If
    pdr = dr
Next

If pdr IsNot Nothing Then
    idx &= pdr("_Identify") & ","
End If

Tables("询价表").filter = "_Identify in (" & idx.trim(",") & ") and 客户 is not null and 工序 is not null"


 回到顶部