以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关联多表创建目录树  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=12864)

--  作者:don
--  发布时间:2011/9/18 21:15:00
--  
纸上不谈兵,实例说话.
--  作者:don
--  发布时间:2011/9/18 21:23:00
--  
什么实例?难道你要别人帮你建表验证!
--  作者:don
--  发布时间:2011/9/18 21:31:00
--  
大概如此这般:
For each dr1 In 【单位】  
For each dr2 In 【部门】 
For each dr3 In 【员工】 
    ............
Next
Next
Next

--  作者:don
--  发布时间:2011/9/18 22:54:00
--  
以下是引用a2704b在2011-9-18 22:37:00的发言:
不明白,能具体点吗?本人是菜鸟,因为他们三个表是通过 单位id, 部门id关联起来,不是一个表里面的
怎样具体?


--  作者:don
--  发布时间:2011/9/18 23:43:00
--  
以下是引用a2704b在2011-9-18 23:41:00的发言:

感激不尽


纸上不谈兵,实例说话.


--  作者:e-png
--  发布时间:2011/9/19 0:05:00
--  
的确有些复杂,搂主应做个简单的项目,要有一定数量的单位、部门、员工,以便老师、高手出招,好象可以用上动态字典的。
--  作者:狐狸爸爸
--  发布时间:2011/9/19 7:48:00
--  

楼主,要养成好习惯,自己设计好三个表,输入一些测试数据。

否则想帮助你的人还得先设计这三个表,输入测试数据,而这些简单但是花时间的事情本该你做好的。

因为任何人写代码都不会一气呵成的,都需要调试的,通过才能发给你,这也是对你负责。

 

你自己做多点,才能得到更快更好的回复。

 

 

 

[此贴子已经被作者于2011-9-19 7:49:44编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/9/19 8:15:00
--  

问题并不复杂,帮你准备这个文件的时间,远远比写代码的时间多:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目93.rar

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each dr1 As DataRow In DataTables("表A").DataRows
    Dim nd1 As WinForm.TreeNode = trv.nodes.Add(dr1("第二列"))
    For Each dr2 As DataRow In dr1.GetChildRows("表B")
        Dim nd2 As WinForm.TreeNode = nd1.nodes.add(dr2("第二列"))
        For Each dr3 As DataRow In dr2.GetChildRows("表C")
            nd2.nodes.add(dr3("第二列"))
        Next
    Next
Next

[此贴子已经被作者于2011-9-19 8:15:57编辑过]

--  作者:don
--  发布时间:2011/9/19 9:12:00
--  
另一法:
Dim jb As New SQLJoinTableBuilder("查询","员工")
jb.AddTable("员工","部门ID","部门","部门ID")
jb.AddCols("{部门}.单位ID","部门名称","员工名称")

Dim sql As String ="Select 单位名称,部门名称,员工名称 From(" 
sql+=jb.Buildsql & ") A Inner JOIN {单位} ON {单位}.[单位ID] = A.[单位ID]"

Dim cmd As New SQLCommand
cmd.CommandText = sql
Dim tv As WinForm.TreeView
tv =e.Form.Controls("TreeView1")
tv.BuildTree(cmd.ExecuteReader,"单位名称|部门名称|员工名称")