以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  根据表中结果再自动进行筛选  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87464)

--  作者:benwong2013
--  发布时间: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;

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

--  作者:大红袍
--  发布时间: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编辑过]

--  作者:大红袍
--  发布时间:2016/7/12 11:58:00
--  
具体,最好上传实例。
--  作者:benwong2013
--  发布时间: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不在第二个表中体现;



--  作者:大红袍
--  发布时间: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