以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于生成目录树加载的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=170316)

--  作者:syst
--  发布时间:2021/7/21 16:56:00
--  关于生成目录树加载的问题
老师您好,有个问题请教一下:我有一个表单,需要根据“负责人”这一列设置目录树加载数据;但是“负责人”这一列是个多值字段,正常设置以后,“负责人”里面有几个名字的,他也当做是一个值出现在目录树里面;如何让目录树能够拆分这种多值字段,然后只是显示不重复的一个名字呢?谢谢!
--  作者:有点蓝
--  发布时间:2021/7/21 17:12:00
--  
那要手工生成目录树节点,比如

dim lst as new list(of string)
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
for each s as string in DataTables("biao A").GetComboListString("负责人").split({"|",","})
if lst.contains(s) = false then
trv.nodes.add(s,s)
lst.add(s)
end if
next

--  作者:syst
--  发布时间:2021/7/21 17:27:00
--  
感谢蓝老师;我之前是这样写的:



Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dtt,"申请项目管理|负责人")

现在想要达到刚刚说的那个效果,应该怎么修改 呢?谢谢噢

代码的前半部分发不出;我就截取了后面这个;
[此贴子已经被作者于2021/7/21 17:29:09编辑过]

--  作者:有点蓝
--  发布时间:2021/7/21 17:28:00
--  
看2楼,看不懂就上传实例
--  作者:syst
--  发布时间:2021/7/21 17:32:00
--  
主要是在“负责人”前面还有一层。“已申请项目管理”,这个应该如何加进去呢?谢谢噢
--  作者:有点蓝
--  发布时间:2021/7/21 17:37:00
--  
for each a as string in DataTables("biao A").Getvalues("已申请项目管理")
lst.clear
dim nd = trv.nodes.add(a,a)
for each s as string in DataTables("biao A").GetComboListString("负责人","已申请项目管理=\'" & a & "\'").split({"|",","})
if lst.contains(s) = false then
nd.nodes.add(s,s)
lst.add(s)
end if
next
next

--  作者:syst
--  发布时间:2021/7/21 17:56:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:问题.png
图片点击可在新窗口打开查看

不好意思蓝老师,还是搞不定;麻烦帮忙看看怎么写哦。附件是之前的代码,是从SQL数据库加载的;谢谢哈

--  作者:有点蓝
--  发布时间:2021/7/22 8:47:00
--  
trv.BuildTree(dtt,"申请项目管理|负责人")

改为

for each a as string in dtt.Getvalues("申请项目管理")
lst.clear
dim nd = trv.nodes.add(a,a)
for each s as string in dtt.GetComboListString("负责人","申请项目管理=\'" & a & "\'").split({"|",","})
if lst.contains(s) = false then
nd.nodes.add(s,s)
lst.add(s)
end if
next
next

--  作者:syst
--  发布时间:2021/7/22 17:16:00
--  
收到!谢谢蓝老师,可以了;