Foxtable(狐表)用户栏目专家坐堂 → 根据表中结果再自动进行筛选


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

主题:根据表中结果再自动进行筛选

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


加好友 发短信
等级:一尾狐 帖子:485 积分:4081 威望:0 精华:0 注册:2015/12/16 8:22:00
根据表中结果再自动进行筛选  发帖心情 Post By:2016/7/12 11:50:00 [只看该作者]


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


系统根据测评分数,自动在优先选择出现筛选的结果,比如结果为136,可能他在表中出最高分大于136,及最低分小于136的,有时候可能会出现两个结果;
但希望能在第二选择哪里出现根据第一选择中“职等”,显示“职等+1”“职等-1”的结果;

窗口触发代码:
Dim L As String = e.Form.Controls("Textleib").Value
Dim F As String = e.Form.Controls("Textfenshu").Value
Dim X As String = e.Form.Controls("ComboLine").Value
Tables("职等测评_Table2").DataTable.LoadFilter = "[类别编号] = '" & L & "' And [职业线] = '" & X & "' And [最高分] > '" & F & "' And [最低分] < '" & F & "'"
Tables("职等测评_Table2").DataTable.Load
Dim tc As WinForm.TabControl = e.Form.Controls("TabControl1")
tc.SelectedPage = tc.TabPages("结果筛选")

另外需要提醒的是,比如优先出现2个结果,分部职等为6,7的话,那么在第二选择哪里将会出现5,8;
若优先结果哪里出现1个结果职等为6时,那么第二选择哪里将会出现5,7;

请问应该如何增加第二选择的代码,谢谢!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/12 11:57:00 [只看该作者]

比如
 
Dim r1 As Row = Tables("职等测评_Table2").Rows(0)
Dim r2 As Row = Tables("职等测评_Table2").Rows(Tables("职等测评_Table2").Rows.Count-1)
 
Tables("职等测评_Table1").DataTable.LoadFilter = "等级 in ('" & r1("等级")-1 & "', '" & r2("等级")+1 & "') and [类别编号] = '" & L & "' And [职业线] = '" & X & "'"
Tables("职等测评_Table1").DataTable.Load
[此贴子已经被作者于2016/7/12 11:57:11编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/12 11:58:00 [只看该作者]

具体,最好上传实例。

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


加好友 发短信
等级:一尾狐 帖子:485 积分:4081 威望:0 精华:0 注册:2015/12/16 8:22:00
  发帖心情 Post By:2016/7/12 13:01:00 [只看该作者]

我修改成为这样可以使用,
Dim r1 As Row = Tables("职等测评_Table2").Rows(0)
Dim r2 As Row = Tables("职等测评_Table2").Rows(Tables("职等测评_Table2").Rows.Count-1)
Tables("职等测评_Table3").DataTable.LoadFilter = "职等 in ('" & r1("职等")-1 & "','" & r1("职等")+1 & "', '" & r2("职等")-1 & "',  '" & r2("职等")+1 & "') and [类别编号] = '" & L & "' And [职业线] = '" & X & "'"
Tables("职等测评_Table3").DataTable.Load

但若要将职等与原来一样的不在第二选择中体现的话,应该如何修改?

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

如上图,将7和8不在第二个表中体现;



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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/12 14:57:00 [只看该作者]

Dim filter1 As String = ""
Dim filter2 As String = ""
For Each r As Row In Tables("职等测评_Table2").Rows
    filter1 &= "'" & r("等级")+1 & "','" & r("等级")-1 & "',"
    filter2 &= "'" & r("等级") & "',"
Next

Tables("职等测评_Table3").DataTable.LoadFilter = "职等 in ('" & filter1.trim(",") & "') and 等级 not in ('" & filter2.trim(",") & "') and [类别编号] = '" & L & "' And [职业线] = '" & X & "'"
Tables("职等测评_Table3").DataTable.Load


 回到顶部