以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求助 目录树 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146672) |
-- 作者:jackyfashion -- 发布时间:2020/2/28 21:53:00 -- 求助 目录树 老师: 您好!
Dim kk As String = ("(年 = \'2020\' And 月 = \'02\' And 日 = \'24\') and ((odkl =
\'女装\'
and ffaa = \'连衣裙\') or (odkl = \'女装\' and ffaa = \'恤衫\')) and (kkth = \'Ms
lee\')") tables("表A").Filter = kk 以上是根根下边三个多选筛选树得出的字句合成的的 以上代码可以从表A 筛选 以下三个选筛选树的代码: Dim nms As String() = {"年","月","日"} \'指定生成目录树的各列 Dim qts As String() = {"\'","\'","\'"} \'指定将各列的值括起来的符号,这里都是字符型,所以都是单引号 Dim tr1 As WinForm.TreeView = e.Form.Controls("TreeView1") Dim flt As String Dim nd As WinForm.TreeNode For Each nd In tr1.SelectedNode.allNodes \'清除子节点的选中标记 nd.Checked = False Next nd = tr1.SelectedNode.ParentNode Do While nd IsNot Nothing \'清除父节点的选中标记 nd.Checked = False nd = nd.ParentNode Loop For Each nd In tr1.AllNodes If nd.Checked Then Dim rts() As String = nd.FullPath.Split("\\") Dim val As String = "" For i As Integer = 0 To rts.length - 1 If val > "" Then val = val & " And " End If val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i) Next If flt > "" Then flt = flt & " Or (" & val & ")" Else flt = val End If End If Next Dim tr2 As WinForm.TreeView = e.Form.Controls("TreeView2") Dim odkl As String For Each nd1 As WinForm.TreeNode In tr2.SelectedNode.Nodes \'清除子节点选中状态 nd1.Checked = False Next If tr2.SelectedNode.ParentNode IsNot Nothing Then \'去掉父节点选中状态 tr2.SelectedNode.ParentNode.Checked = False End If For Each nd1 As WinForm.TreeNode In tr2.AllNodes If nd1.Checked Then If odkl > "" Then odkl = odkl & " Or " \'注意用or而不是And End If If nd1.Level = 0 Then \'注意下面的条件都要用括号括起来 odkl = odkl & "( odkl = \'" & nd1.Text & "\')" Else odkl = odkl & "( odkl = \'" & nd1.ParentNode.Text & "\' And ffaa = \'" & nd1.Text & "\')" End If End If Next Dim tr3 As WinForm.TreeView = e.Form.Controls("TreeView3") Dim kkth As String For Each nd2 As WinForm.TreeNode In tr3.SelectedNode.Nodes \'清除子节点选中状态 nd2.Checked = False Next If tr3.SelectedNode.ParentNode IsNot Nothing Then \'去掉父节点选中状态 tr3.SelectedNode.ParentNode.Checked = False End If For Each nd2 As WinForm.TreeNode In tr3.AllNodes If nd2.Checked Then If kkth > "" Then kkth = kkth & " Or " \'注意用or而不是And End If If nd2.Level = 0 Then \'注意下面的条件都要用括号括起来 kkth = kkth & "( kkth = \'" & nd2.Text & "\')" End If End If Next Tables("表A").Filter = ((flt) And (odkl) And (kkth)) 提示: "从字符串“年 = \'2020\' And 月 = \'02\' And 日 = ”到类型“Long”的转换无效" 以上的 年 月 日 三列都是字符型 请老师指教!!! 谢谢!!! [此贴子已经被作者于2020/2/28 22:00:18编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/2/28 21:59:00 -- Tables("表A").Filter = "(" & flt & ") And (" & odkl & ") And (" & kkth & ")" |
-- 作者:jackyfashion -- 发布时间:2020/2/28 22:02:00 -- 谢谢老师!!! 谢谢!!!
|
-- 作者:jackyfashion -- 发布时间:2020/2/28 22:21:00 -- 老师: 您好! 改了代码后三个多选筛选树都选,就可以, 如果其中一个没选中就有如下提示: 语法错误:“”运算符后缺少操作数。 请老师指教!!! 谢谢!!!
|
-- 作者:有点蓝 -- 发布时间:2020/2/28 22:27:00 -- Tables("表A").Filter = "(" & IF(flt>"",flt,"1=1") & ") And (" & IF(kkth>"",kkth,"1=1") & ") And (" & IF(odkl>"",odkl,"1=1")& ")"
|
-- 作者:jackyfashion -- 发布时间:2020/2/28 22:30:00 -- 谢谢老师!!! 谢谢!!!
|
-- 作者:jackyfashion -- 发布时间:2020/2/28 22:53:00 -- 老师: 您好! 保存不了, 提示: 编译错误:应为表达式。 Tables("表A").Filter = "(" & IF(flt>"",flt,"1=1") & ")
And (" & IF(kkth>"",kkth,"1=1") & ") And (" & IF(odkl>"",odkl,"1=1")& ")" 请老师指点!!! 谢谢!!! |
-- 作者:有点蓝 -- 发布时间:2020/2/29 9:13:00 -- 我测试没有问题,上传实例说明 |
-- 作者:jackyfashion -- 发布时间:2020/2/29 11:05:00 -- 老师: 您 好! 老师:上传了压缩文件,但看不到 谢谢!!!
[此贴子已经被作者于2020/2/29 11:10:30编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/2/29 11:12:00 -- 文件不能大于2M。重复上传,多试几次,直到成功 |