根据2楼的说法 :
我有三个组合框
sx1 sx2 sx3
对应选项 学历 高于 研究生
职务 低于 本科
等于 专科
不高于 中专
不低于 师范
类同于 高中
初中
sx2 的选项 有 6种,sx3的选项有7种,排列组合就有42种,写起来有点麻烦
想法:
在【数据字典】中设置了下列 两列
学历等级 学历
7 研究生
6 本科
5 专科
3 中专
3 师范
2 高中
1 初中
代码有问题,但思路如下:
Dim sx1 As WinForm.ComboBox =
e.Form.Controls("筛选1")
Dim sx2 As WinForm.ComboBox =
e.Form.Controls("筛选2")
Dim sx3 As WinForm.ComboBox =
e.Form.Controls("筛选3")
Dim Filter As String =
""
Dim 筛选项目 As String = ""
if sx1.text = "最高学历"
Then
筛选项目 = "学历"
Dim dr As DataRow
dr =DataTables("数据字典").Find("[学历]='"
& sx3.text & "'")
Dim xldj As String = dr("学历等级") '求得学历对应的等级
msgbox( xldj ) ‘如果sx3选专科,这里的值为5
If sx2.text = "高于" Then
'开始求出一个高于 xldj 的学历组合
'Dim lt As new List(Of String) '定义集合
Dim lt As List(of String) =
DataTables("数据字典").GetUniqueValues("[学历等级] > xldj
","学历")
‘这里不知道该用组合还是用数组
Dim alt() As String = lt.ToArray
Array.Sort(alt)
Dim slt As String =
String.Join("|", alt)
Dim drz As DataRow
drz = DataTables("教职工信息表").Find("")
Filter = " [最高学历_学历]
in lt ") '该句不知道如何叙述
ElseIf 。。。
。。。
else
Filter = ""
End If
else
Filter = ""
End If
else
Filter = ""
End If
Tables("教职工信息表").Filter = Filter
绿色部分 只是思路,有好多错误,可自己无法写出来了 ,恳请老师指导!