以文本方式查看主题 - 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" |