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


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

主题:筛选问题

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/28 10:13:00 [显示全部帖子]

Dim dr As DataRow
dr = DataTables("XX").Find("产品 = 'yy' And 库存 = 0","日期 Desc")

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/28 16:32:00 [显示全部帖子]

XX,yy随便写的,xx是表名,yy表示要查找的产品名。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/28 19:01:00 [显示全部帖子]

这段代码的意思是找出某产品库存为0的最后一个日期的行,并放在变量dr中,在命令窗口执行,当让不会有任何反应。

 

如果要定位到此行,可以用下面的代码:

Dim dr As DataRow
dr = DataTables("XX").Find("产品 = 'yy' And 库存 = 0","日期 Desc")
If dr IsNot Nothing Then
    Dim wz As Integer = Tables("xx").FindRow(dr)
    If wz >= 0 Then
        Tables("xx").Position = wz
    End If
End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/29 6:31:00 [显示全部帖子]

筛选就这样:

 

Dim dr As DataRow
dr = DataTables("XX").Find("产品 = 'yy' And 库存 = 0","日期 Desc")
If dr IsNot Nothing Then

    Tables("xx").Filter = "[_Identify] = " & dr("_Identify")
End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/30 8:51:00 [显示全部帖子]

我测试没有问题:

 

Dim dr As DataRow
dr = DataTables("流水").Find("产品 = 'PD03' And 库存 = 0","日期 Desc")
If dr IsNot Nothing Then
    Tables("流水").Filter = "[_Identify] = " & dr("_Identify")
End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/30 10:36:00 [显示全部帖子]

一样可以的,而且原理很简单,这样就删选出所有产品的最后一次日期库存为0的行:

 

Dim Vals As List(of String) = DataTables("流水").GetUniqueValues("","产品")
Dim ids As String = ""
For Each Val AS String In Vals
    Dim dr As DataRow = DataTables("流水").Find("产品 = '" & Val & "' And 库存 = 0","日期 Desc")
    If dr IsNot Nothing Then
        ids = ids & "," & dr("_Identify")
    End If
Next
ids = ids.Trim(",")
Tables("流水").filter = "[_Identify] In (" & ids & ")"

 

这里用到了In运算符,学习Foxtable的时候,不要只看开发篇,注意应用篇也是不可忽略的。


[此贴子已经被作者于2010-7-30 10:37:52编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/31 17:03:00 [显示全部帖子]

哪里不对,举例说明,我测试正常

 回到顶部