以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于BuildTree生成目录树的问题求助  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=16120)

--  作者:liguichuan
--  发布时间:2012/2/2 23:42:00
--  [求助]关于BuildTree生成目录树的问题求助

有一表格情况如下:

图片点击可在新窗口打开查看此主题相关图片如下:表格情况.jpg
图片点击可在新窗口打开查看

 

通过使用BuildTree生成目录树如下:


图片点击可在新窗口打开查看此主题相关图片如下:目录树展开.jpg
图片点击可在新窗口打开查看

 

代码如下:

Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")

Dim userlist As DataTable
Dim cmd1 As New SQLCommand
cmd1.C
cmd1.CommandText = "select * from {用户}"
userlist = cmd1.ExecuteReader()

trv1.BuildTree(userlist,"归属企业|一级部门|二级部门|员工姓名")


问题如下:

1、不是每个公司都有分下级部门,有的没有分部门,有的只分了一个级别的部门,而有的则会细分成2个级别的部门,假如最多就分成了两级,原数据采集格式如上面表格储存形式,请问:如何在没有“一级部门”或是没有“二级部门”的时候能够正常显示出员工姓名,就是说中间的列假如存在空格则跳过该列,该空白列不生成子节点;

希望达到类型下面的效果:让没有归属部门的员工能够直接归在公司下级节点中。

 


图片点击可在新窗口打开查看此主题相关图片如下:目录树展开2.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2012/2/3 8:48:00
--  

自动生成的目录树没有办法做到这个样,只能手工编写代码。

 


--  作者:liguichuan
--  发布时间:2012/2/3 12:07:00
--  

      狐爸,把BuildTree函数改进一下吗!弄多一个参数“是否省略中间空列值”,确实有时候会有这样的需求呀!这样让大家都受益。

而不用每个人都写一大堆代码。

图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2012/2/3 12:11:00
--  

用一个表达示例,将这几列的内容组合在一起,然后根据这个表达式列生成目录树算了,用这个方法:

 

http://www.foxtable.com/help/topics/1969.htm

 


--  作者:liguichuan
--  发布时间:2012/2/3 13:04:00
--  
这个懂。就这样吧。