以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教,筛选语句中的逻辑判断条件怎么写?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115235)

--  作者:jq_shang
--  发布时间:2018/3/3 14:11:00
--  请教,筛选语句中的逻辑判断条件怎么写?
Tables("员工表").Filter = "[部门ID] = " & 28 And xyjh.Contains("ymjttygs023") = True

请教,后面这个筛选条件的正确写法是什么?

--  作者:有点蓝
--  发布时间:2018/3/3 14:24:00
--  
Tables("员工表").Filter = "[部门ID] = " & 28 & " And xyjh like \'%ymjttygs023%\'"
--  作者:jq_shang
--  发布时间:2018/3/3 14:38:00
--  
Tables("员工表").Filter = "[部门ID] = " & 28
Tables("员工表").Filter = "xyjh.Contains(\'" & [学员号] & "\')" = True 

也不对

--  作者:jq_shang
--  发布时间:2018/3/3 14:38:00
--  
谢谢!!
--  作者:有点蓝
--  发布时间:2018/3/3 14:38:00
--  
xyjh是什么东西?
--  作者:jq_shang
--  发布时间:2018/3/3 14:39:00
--  
\'设置员工表加载条件,第一个筛选条件,是部门;第二个筛选条件是:去除当班学员表中已有的学员.现在先提取第二个筛选条件字符串.
Dim bcxy As String
bcxy = Tables("培训班次").Current("kid") \'这里对培训班次表当前行即当前培训班次的kid进行取值,写入字符串bcxy
output.show(bcxy)
Tables("学员表").Filter = "[班次编码] = \'" & bcxy & "\'" \'在这个表达式上,经常犯错误.bcft是一个动态提取的字符串.如果是整数型,这样写:filter = "[班次编码] = " & bcft____整数型
\'以上,先对学员表进行了一次筛选,列出的是培训班次当前行,即当前培训班次中的所有学员.


Dim xyid As String
output.show(Tables("学员表").Rows.Count)
If Tables("学员表").Rows.Count > 0
For Each dr As Row In Tables("学员表").Rows
xyid = xyid & "," & dr("培训号")
Next
End If
output.show(xyid) \'得到一个全部培训号连起来的字符串
xyid = xyid.Trim(",") \'去掉字符串前面的第一个逗号
output.show(xyid)

Dim xyids() As String
xyids = xyid.Split(",") \'得到一个本班已有学员的培训号数组xyids()
output.show(xyids(0))

Dim xyjh As new List(of String)
xyjh.AddRange(xyids) \'得到一个本班已有学员的培训号集合xyjh,以后可以用contains语句来判断是否属于本集合中
\'output.show(xyjh.count)
\'If xyjh.Contains("ymjttygs023") = True
\'output.show("您好")
\'End If

\'以下语句用来写出员工表筛选的第二个条件
\'Dim bm As Integer
\'Dim bmdr As DataRow = e.Node.DataRow \'获取生成此节点的行
\'bm = bmdr("id")
Tables("员工表").Filter = "[部门ID] = " & 28
Tables("员工表").Filter = "xyjh.Contains(\'" & [学员号] & "\')" = True 

最后这句不会写。请教。




--  作者:jq_shang
--  发布时间:2018/3/3 14:47:00
--  
xyjh 是学员表中提取出来的学员培训号字符集合。
--  作者:jq_shang
--  发布时间:2018/3/3 14:48:00
--  
Tables("员工表").Filter = "[部门ID] = " & bm
Tables("员工表").Filter = "xyjh.Contains(\'" & [学员号] & "\')" = True 

最后这句不会写。请教。

--  作者:有点蓝
--  发布时间:2018/3/3 14:58:00
--  
Dim xyid As String 
output.show(Tables("学员表").Rows.Count)
If Tables("学员表").Rows.Count > 0
    For Each dr As Row In Tables("学员表").Rows
        xyid = xyid & ",\'" & dr("培训号") & "\'"
    Next
End If
output.show(xyid) \'得到一个全部培训号连起来的字符串
xyid = xyid.Trim(",") \'去掉字符串前面的第一个逗号
output.show(xyid)

Tables("员工表").Filter = "[部门ID] = " & 28 & " and 学员号 in (" & xyid & ")"


--  作者:jq_shang
--  发布时间:2018/3/3 15:28:00
--  
谢谢!
我想表达的真实意图是学员号不在那个集合中,能不能写成:
Tables("员工表").Filter = "[部门ID] = " & 28 & " and 学员号 in (" & xyid & ") = false"