以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗口中树控件的初始化  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=45698)

--  作者:zjw
--  发布时间:2014/2/9 9:47:00
--  窗口中树控件的初始化

请问:

 

在菜单中点击一个按钮后,弹出的窗口中,我放了一个树控件,这个控件的节点需要从表中查询出来,请问如何写这些代码?


--  作者:有点甜
--  发布时间:2014/2/9 21:03:00
--  
 根据一列生成目录树


 根据多列生成目录树


--  作者:zjw
--  发布时间:2014/2/10 9:40:00
--  

您好,您个我的链接我看了,这个树控件的

BuildTree(DataTableName, Columns, Filter, Sort)

方法确实可以初始化节点,但是好像只能根据一个表中的列,如果各层节点在不同的表呢?

 

我有三个表

表1:员工信息表,记录员工id对应的姓名
表2:员工在职状态表,记录员工的部门id
表3:部门设置表 记录部门的id对应的名称

以上3个表我做了2级关联,目的是根据员工姓名找到他的部门名称

 

树控件有2层节点,父节点是部门名称,子节点是员工姓名,这样怎么做呢?


--  作者:zjw
--  发布时间:2014/2/10 10:03:00
--  
您好,附件是我的工程,请参考
--  作者:zjw
--  发布时间:2014/2/10 10:07:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:劳资管理系统 _study.table


--  作者:Bin
--  发布时间:2014/2/10 10:24:00
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:劳资管理系统 _study.table


--  作者:zjw
--  发布时间:2014/2/10 17:53:00
--  

您好,我看了帮助,在里面找到了用SQL实现的方法:

 

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "Select d.部门名称 As 部门名称,a.员工id As 员工id, a.姓名 As 姓名 From {员工信息表} a INNER JOIN (Select b.员工id As 员工id, c.部门名称 As 部门名称 From {员工岗位状态信息表} b INNER JOIN  {部门设置} c On b.部门id=c.部门id Where b.是否第一岗位= True) d On a.员工id=d.员工id Group By d.部门名称"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt,"部门名称|姓名")
trv.Nodes.Insert("加载所有数据",0)

 

但是执行后弹出:

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

 

好像是sql出了问题,能不能帮我看看这个sql问题在哪里?


--  作者:Bin
--  发布时间:2014/2/10 17:54:00
--  
纸上不谈兵,请上例子.
--  作者:Bin
--  发布时间:2014/2/10 18:00:00
--  
select *,(select 姓名 from {员工信息表} a where a.员工id=b.员工id ) as 姓名 from {员工岗位状态信息表} b inner join {部门设置} c on b.部门id=c.部门id