Foxtable(狐表)用户栏目专家坐堂 → 按动态多参数,筛选符合条件的数据


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

主题:按动态多参数,筛选符合条件的数据

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


加好友 发短信
等级:三尾狐 帖子:640 积分:5189 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/9/17 12:15:00 [只看该作者]

是这样吗?还是没数据。如果把and 变为or,不符合条件的人也进来了

Dim filter As String = "1=1"
For Each dr As DataRow In DataTables("xmgl").Select("岗位='" & e.Form.Controls("TextBox1").text & "'")
    filter = filter & " and (工作项='" & dr("工作项") & "' and 完成值 >=" & dr("最小值") & ")"
Next
filter = "岗位='" & e.Form.Controls("TextBox1").text & "' and (" & filter  & ")"
msgbox(filter)

Dim nr As DataRow
For Each ss As String() In DataTables("daily").GetValues("姓名|岗位",filter)
    If DataTables("userinfo").Find("姓名='" & ss(0) & "' And 岗位='" & ss(1) & "'") Is Nothing
        nr = DataTables("userinfo").AddNew
        nr("姓名") = ss(0)
        nr("岗位") = ss(1)
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/17 13:45:00 [只看该作者]

Dim filter As String = "岗位='" & e.Form.Controls("TextBox1").text & "'"
For Each dr As DataRow In DataTables("xmgl").Select("岗位='" & e.Form.Controls("TextBox1").text & "'")
    filter = filter & " and 工作项='" & dr("工作项") & "' and 完成值 >=" & dr("最小值")
Next
msgbox(filter)

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


加好友 发短信
等级:三尾狐 帖子:640 积分:5189 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/9/17 15:12:00 [只看该作者]

蓝老师,我把人员分析的数据删除,岗位销售重新生成。符合条件的有黄盖和关羽。但是这两人并没有添加?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:微步按参数筛选.foxdb



[此贴子已经被作者于2020/9/17 15:12:33编辑过]

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/17 15:20:00 [只看该作者]

仔细看了一下,这种设计只能使用or查询,因为同一行的工作项不可能既等于销售额又等于客户数

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


加好友 发短信
等级:三尾狐 帖子:640 积分:5189 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/9/17 15:39:00 [只看该作者]

那老师我要同时满足多个参数的人添加,能否麻烦您看看如何做?

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/17 15:50:00 [只看该作者]

这个表结构没有办法。除非转换为横表,比如:

姓名、岗位、销售额、客户数、订单数
刘备,销售,5,6,5
黄盖,销售,8,8,8

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


加好友 发短信
等级:三尾狐 帖子:640 积分:5189 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/9/17 19:01:00 [只看该作者]

Dim ids As List(Of String) = DataTables("mcheck").GetValues("personid","[mid] = '" & e.Row("mid") & "'")
If ids IsNot Nothing Then
     Tables("人才库_Table3").Filter = "personid In ids "
End If
老师这个代码这样可以吗?

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


加好友 发短信
等级:三尾狐 帖子:640 积分:5189 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/9/17 20:00:00 [只看该作者]

老师,能否实现,双击分析条件中的一行数据,筛选一次数据。并且下次筛选是在上次筛选的基础上进行?

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/17 20:24:00 [只看该作者]

Dim ids As List(Of String) = DataTables("mcheck").GetValues("personid","[mid] = '" & e.Row("mid") & "'")
If ids.count > 0 Then
     Tables("人才库_Table3").Filter = "personid In ('" & string.join("','",ids.toarray) & "') "
End If

如果还是原来的表结构,就算可以在上次筛选的基础上进行一样实现不了想要的功能,原因一样

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


加好友 发短信
等级:三尾狐 帖子:640 积分:5189 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/9/17 20:42:00 [只看该作者]

老师在上次筛选的基础上,进行筛选,代码该如何写?
我变化实现方式,先筛选,而后手动一个一个添加人员。

 回到顶部
总数 21 上一页 1 2 3 下一页