Foxtable(狐表)用户栏目专家坐堂 → 如何实现特殊的重复行筛选?


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

主题:如何实现特殊的重复行筛选?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/2/16 19:56:00 [显示全部帖子]

这样可以吗:


Dim id As String
For ci As Integer = 0 To CurrentTable.cols.count -1
    CurrentTable.Filter = ""
    Dim lm As String = CurrentTable.cols(ci).name   
    CurrentTable.Select(0,ci)
    Tables("表A").focus

    Syscmd.Filter.ShowSameValues()
    For i As Integer = 0 To CurrentTable.count -1
        Dim rr As Row = Tables("表A").Rows(i)
        If rr(lm) <> ""
          '  If id.contains(Tables("表A").Rows(i)("_identify")) = False   
                id = id  & "[_identify] = " & Tables("表A").Rows(i)("_identify") & " or "
         '   End If
        End If
    Next

Next
output.show(id.substring(0,id.Length-4))
Tables("表A").Filter = id.substring(0,id.Length-4)

 

 顺便问一下老师们 ‘上面粉红色的这个if语句有什么问题,怎么会提示错误呢 ??


 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/2/16 20:45:00 [显示全部帖子]

也不行,提示一样
图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/2/16 21:08:00 [显示全部帖子]

知道了,缺少了个条件 If id Is Nothing  ··· else  ··· end if

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/2/16 21:13:00 [显示全部帖子]

 

这样所有列中有重复值时都可以筛选出来了:

 

With DataTables("表A")
    .StopRedraw
    Dim id0,id As String
    For ci As Integer = 0 To CurrentTable.cols.count -1
        CurrentTable.Filter = ""
        Dim lm As String = CurrentTable.cols(ci).name
        CurrentTable.Select(0,ci)
        Tables("表A").focus

        Syscmd.Filter.ShowSameValues()
        For i As Integer = 0 To CurrentTable.count -1
            Dim rr As Row = Tables("表A").Rows(i)
            If rr(lm) <> ""
                Dim ide As String = rr("_identify")

                If id Is Nothing
                    id = id  & "[_identify] = " & rr("_identify") & " or "
                Else
                    If id <> "" And id.contains(ide) = False
                        id = id  & "[_identify] = " & rr("_identify") & " or "
                    End If
                End If     
            End If
        Next
        'Exit For
    Next

    Tables("表A").Filter = id.substring(0,id.Length-4)   
    .ResumeRedraw
End With


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/2/16 22:11:00 [显示全部帖子]

这是的,怎么解决呢。

 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/2/16 22:28:00 [显示全部帖子]

这样不会报错了:

 

If id <> Nothing
    Tables("表A").Filter = id.substring(0,id.Length-4)   
End If


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/2/16 23:06:00 [显示全部帖子]

If rr(lm) <> ""  改成: If rr.isnull(lm) = False

 

如果只是7列,就加个判断啊: if ci <= 6 .........


 回到顶部