Foxtable(狐表)用户栏目专家坐堂 → 字符串包含筛选


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

主题:字符串包含筛选

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 10:34:00 [显示全部帖子]

 如果要对文件名进行筛选的话,只能是遍历一次整个表了,然后再设置筛选条件。

 不能取巧的,除非你的文件名较为特殊。比如,是特定的格式。
[此贴子已经被作者于2012-12-22 10:34:26编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 10:56:00 [显示全部帖子]

以下是引用实话实说在2012-12-22 10:51:00的发言:

[文件名]列是字符型,记录为:\\服务器\文件夹\GB/T 5023-2008  PVC绝缘电线.doc

以上代码可以进行正常筛选,但包含了路径和文件夹,我只是想对“\”后面的字符(GB/T 5023-2008  PVC绝缘电线.doc)进行包含筛选,不知我说明白没有。


不可以直接筛选的。

for each r as row in tables().rows
   '自己编写代码匹配吧,记录下_Identify,最后筛选
next

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 11:31:00 [显示全部帖子]

 比如这样。

 dim idxs as string = ""
 for each r as row in tables().rows
     dim idx as integer = r("文件名").LastIndexOf("\")
     if r("文件名").Substring(idx) like "*" & value & "*" Then
         idxs += r("_identify") & ","
    end if
 next

 tables().filter = "_Identify in (" & idxs.Trim(",") & ")"

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 15:06:00 [显示全部帖子]

正常,如果想要按照空格分割查询,可以这样。

Dim idxs As String = ""
Dim s1 As String = e.Form.Controls("文件名称").Value
If s1 > "" Then
    Dim arys() As String = s1.Split(" ")
    For Each r As Row In Tables("表A").rows
        Dim idx As Integer = r("文件名称").LastIndexOf("\")
        For Each ary As String In arys
            If r("文件名称").Substring(idx) Like "*" & ary & "*" Then
                idxs += r("_identify") & ","
            End If
        Next
    Next
    Tables("表A").Filter = "_Identify in (" & idxs.Trim(",") & ")"
End If

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 15:38:00 [显示全部帖子]

 呃,不懂你的意思。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 16:02:00 [显示全部帖子]

以下是引用实话实说在2012-12-22 15:57:00的发言:

本字符串包含筛选有两个需求:1、部分字符串筛选,上面代码已经解决;2、包含筛选,看7楼的实例(窗口表A中“筛选按钮”代码)和11楼描述。


分割符是空格。自己改一下。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 16:31:00 [显示全部帖子]

 
Dim idxs As String = ""
Dim s1 As String = e.Form.Controls("文件名称").Value
If s1 > "" Then
   
Dim arys() As String = s1.Split(",")    '注意逗号   小林写的空格
    For Each r As Row In Tables("表A").rows
        Dim idx As Integer = r("文件名称").LastIndexOf("\")
        For Each ary As String In arys
            If r("文件名称").Substring(idx) Like "*" & ary & "*" Then
                idxs += r("_identify") & ","
            End If
        Next
    Next
    If idxs > "" then
Tables("表A").Filter = "_Identify in (" & idxs.Trim(",") & ")"
End If

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/24 8:43:00 [显示全部帖子]

 
Dim idxs As String = ""
Dim s1 As String = e.Form.Controls("文件名称").Value
If s1 > "" Then
   
Dim arys() As String = s1.Split(",")    '注意逗号   小林写的空格
    For Each r As Row In Tables("表A").rows
        Dim idx As Integer = r("文件名称").LastIndexOf("\")
        For Each ary As String In arys
            If r("文件名称").Substring(iif(idx>-1, idx, 0)) Like "*" & ary & "*" Then
                idxs += r("_identify") & ","
            End If
        Next
    Next
    If idxs > "" then
Tables("表A").Filter = "_Identify in (" & idxs.Trim(",") & ")"
End If

 回到顶部