以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]表A第一列生成目录树 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174413) |
||||
-- 作者:miaoqingqing -- 发布时间:2022/1/14 10:32:00 -- [求助]表A第一列生成目录树 求助,表a第一列多值中,开头时 !@#三种特殊符号的,目录树生成,第一级目录树 @国家 #时间 !状态 第二级目录树从表a第一列多值中取值 @国家 @美国 @中国 @英国 #时间 #晚上 #早上 #中午 !状态 !重要紧急 !不重要不紧急
[此贴子已经被作者于2022/1/14 10:35:18编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/1/14 10:43:00 -- 没看懂,生成什么效果?画图说明一下 |
||||
-- 作者:miaoqingqing -- 发布时间:2022/1/14 10:55:00 -- 回复:(有点蓝)没看懂,生成什么效果?画图说明一下... 一级目录树
二级目录树 @国家
@美国 @国家
@中国 @国家
@英国 #时间
#晚上 #时间
#早上 #时间
#中午 !状态
!重要紧急 !状态
!不重要不紧急 也就是,多值生成目录树+加一个根据首字母生成的一级目录树 @开头的多值,加一个一级目录树 @国家 #开头的多值,加一个一级目录树 #时间 !开头的多值,加一个一级目录树 !状态 [此贴子已经被作者于2022/1/14 10:57:28编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/1/14 11:12:00 --
|
||||
-- 作者:miaoqingqing -- 发布时间:2022/1/14 16:23:00 -- 回复:(有点蓝)[upload=zip,表a第一列生成目录树.zi... 蓝主,选择美国后,再选择项目1,筛选有误求助修复 |
||||
-- 作者:有点蓝 -- 发布时间:2022/1/14 16:53:00 -- and连接条件改为or |
||||
-- 作者:miaoqingqing -- 发布时间:2022/1/14 17:20:00 -- 回复:(有点蓝)and连接条件改为or或者参考:http://... 蓝主,根据上楼帮助的代码都不行,可能是因为加了一级节点 帮忙看看了 \'\'都不行的代码 Dim nms As String() = {"第一列","项目"} \'指定生成目录树的各列 Dim qts As String() = {"\'","\'"}\'指定将各列的值括起来的符号,这里都是字符型,所以都是单引号 Dim trv As WinForm.TreeView = e.Sender Dim flt As String Dim nd As WinForm.TreeNode For Each nd In e.node.allNodes \'清除子节点的选中标记 nd.Checked = False Next nd = e.Node.ParentNode Do While nd IsNot Nothing \'清除父节点的选中标记 nd.Checked = False nd = nd.ParentNode Loop For Each nd In trv.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 \'Tables("订单").Filter = flt Tables("窗口1_Table1").Filter = flt \'\'都不行的代码 Dim trv As WinForm.TreeView = e.Sender Dim flt As String For Each nd As WinForm.TreeNode In e.node.Nodes \'清除子节点选中状态 nd.Checked = False Next If e.node.ParentNode IsNot Nothing Then \'去掉父节点选中状态 e.node.ParentNode.Checked = False End If For Each nd As WinForm.TreeNode In trv.AllNodes If nd.Checked Then If flt > "" Then flt = flt & " Or " \'注意用or而不是And End If If nd.Level = 0 Then \'注意下面的条件都要用括号括起来 flt = flt & "( 第一列 = \'" & nd.Text & "\')" Else flt = flt & "( 第一列 = \'" & nd.ParentNode.Text & "\' And 项目 = \'" & nd.Text & "\')" End If End If Next Tables("窗口1_Table1").Filter = flt |
||||
-- 作者:有点蓝 -- 发布时间:2022/1/14 17:30:00 -- 多值字段使用like查询 |
||||
-- 作者:miaoqingqing -- 发布时间:2022/1/14 18:39:00 -- 回复:(有点蓝)多值字段使用like查询 蓝主,下面代码还是不行,有空帮忙看看了 \'都不行的代码 Dim trv As WinForm.TreeView = e.Sender Dim flt As String For Each nd As WinForm.TreeNode In e.node.Nodes \'清除子节点选中状态 nd.Checked = False Next If e.node.ParentNode IsNot Nothing Then \'去掉父节点选中状态 e.node.ParentNode.Checked = False End If For Each nd As WinForm.TreeNode In trv.AllNodes If nd.Checked Then If flt > "" Then flt = flt & " Or " \'注意用or而不是And End If If nd.Level = 0 Then \'注意下面的条件都要用括号括起来 flt = flt & "( 第一列 Like \'" & nd.Text & ",*"\')" Else flt = flt & "( 第一列 Like \'" & nd.Text & ",*"\') And 项目 = \'" & nd.Text & "\')" End If End If Next Tables("窗口1_Table1").Filter = flt [此贴子已经被作者于2022/1/15 21:04:21编辑过]
|