Foxtable(狐表)用户栏目专家坐堂 → 筛选


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

主题:筛选

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


加好友 发短信
等级:四尾狐 帖子:821 积分:6422 威望:0 精华:0 注册:2013/2/18 17:46:00
筛选  发帖心情 Post By:2024/9/4 13:05:00 [只看该作者]

如何筛选出不同【零件编号】的最后【完成日期】行?
图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2024/9/4 14:12:00 [只看该作者]

例如:

sele ct 编号,max(日期)  from {表B} group by 编号

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


加好友 发短信
等级:四尾狐 帖子:821 积分:6422 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/9/4 15:45:00 [只看该作者]

我要找出零件编号为A,完成日期为最近的行,零件编号为B,完成日期为最近的行.......

是否采用For Each 语句,代码怎么写?


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


加好友 发短信
等级:四尾狐 帖子:821 积分:6422 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/9/4 17:20:00 [只看该作者]

Dim Filter As String = "零件编号 = ''"
Dim Products As List(Of String)
Products = DataTables("表A").GetValues("零件编号") '找出不同的零件编号
For Each Product As String In Products
Filter = Filter & " And "
Filter = Filter & "(零件编号 = '" & Product & "' AND 完成日期 = '" & Max(完成日期) & "')"'找出不同零件编号的最近完成日期行
 Next
If Filter > "" Then
    Tables("表A").Filter = Filter '筛选出不同零件编号的最近完成行
End If


老师,上述代码的思路是否正确,帮我改一下代码?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2024/9/5 8:57:00 [只看该作者]

Dim drs As List(Of DataRow) = DataTables("表B").Select("", "编号,日期 Desc")
Dim rst As New List(Of DataRow)
Dim bh As String = ""
For Each dr As DataRow In drs
    If dr("编号") <> bh Then
        rst.Add(dr)
        bh = dr("编号")
    End If 
Next

rst就是要的结果。

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


加好友 发短信
等级:四尾狐 帖子:821 积分:6422 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/9/5 10:25:00 [只看该作者]

Dim drs As List(Of DataRow) = DataTables("表A").Select("", "零件编号,完成日期 Desc")
Dim rst As New List(Of DataRow)
Dim bh As String = ""
For Each dr As DataRow In drs
    If dr("零件编号") <> bh Then
        rst.Add(dr)
        bh = dr("零件编号")
        Dim Filter As String = "工艺单号 = ''"
        Filter = Filter & " And "
       Filter = Filter & "工艺单号 = '" & drs("工艺单号") & "'"
    End If
Next
If Filter > "" Then
    Tables("生产管理_Table01").Filter = Filter
End If

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

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2024/9/5 10:51:00 [只看该作者]

Filter = Filter & "工艺单号 = '" & dr("工艺单号") & "'"



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


加好友 发短信
等级:四尾狐 帖子:821 积分:6422 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/9/5 11:01:00 [只看该作者]

Dim drs As List(Of DataRow) = DataTables("表A").Select("", "零件编号,完成日期 Desc")
Dim rst As New List(Of DataRow)
Dim bh As String = ""
For Each dr As DataRow In drs  
    If dr("零件编号") <> bh Then
        rst.Add(dr)
        bh = dr("零件编号")
        Dim Filter As String = "工艺单号 = ''"
        Filter = Filter & " And "
        Filter = Filter & "工艺单号 = '" & dr("工艺单号") & "'"
        If Filter > "" Then
        Tables("表A").Filter = Filter
        End If
    End If 
Next

筛选的结果生成的表是空的


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2024/9/5 11:25:00 [只看该作者]

检查一下合成的Filter内容是什么

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


加好友 发短信
等级:四尾狐 帖子:821 积分:6422 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/9/5 12:27:00 [只看该作者]

Dim drs As List(Of DataRow) = DataTables("表A").Select("", "零件编号,完成日期 Desc")
Dim rst As New List(Of DataRow)
Dim bh As String = ""
For Each dr As DataRow In drs
    If dr("零件编号") <> bh Then
        rst.Add(dr)
        bh = dr("零件编号")
        MsgBox(bh)
        Dim Filter As String = "工艺单号 = ''"
         MsgBox(Filter)
        Filter = Filter & " or "
         MsgBox(Filter)
        Filter = Filter & "工艺单号 = '" & dr("工艺单号") & "'"
         MsgBox(Filter)
        If Filter > "" Then
        Tables("表A").Filter = Filter
        End If
    End If
Next

合成的Filter分别是如下内容,我希望的合成结果是工艺单='' or工艺单='A-03'or工艺单='B-03'

 A       工艺单=''      工艺单='' or     工艺单='' or工艺单='A-03'   

 B       工艺单=''      工艺单='' or     工艺单='' or工艺单='B-03'


 回到顶部
总数 13 1 2 下一页