以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]多表目录树  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59356)

--  作者:建筑人生
--  发布时间:2014/11/2 21:23:00
--  [求助]多表目录树


图片点击可在新窗口打开查看此主题相关图片如下:电气工程量内容.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:水卫工程量内容.jpg
图片点击可在新窗口打开查看

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

 

主要是后面跟的表结构相差很大

[此贴子已经被作者于2014-11-2 21:25:04编辑过]

--  作者:建筑人生
--  发布时间:2014/11/2 21:24:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多表目录树.table


--  作者:有点甜
--  发布时间:2014/11/2 21:28:00
--  

afterload事件

 

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

Dim cmd As new SQLCommand
cmd.CommandText = "select 项目工程,单项工程,单位工程,分项工程 from {电气工程量} union select 项目工程,单项工程,单位工程,分项工程 from {水卫工程量}"
Dim dt As DataTable = cmd.ExecuteReader

tv.BuildTree(dt, "项目工程|单项工程|单位工程|分项工程")


--  作者:建筑人生
--  发布时间:2014/11/2 21:32:00
--  

谢谢,甜你太牛了

 


--  作者:建筑人生
--  发布时间:2014/11/2 21:40:00
--  

Dim Filter As String = ""
Dim Value() As String
Value = e.Node.FullPath.Split("\\")
If e.Node.Text <> "显示所有行" Then

            \'If e.node.Level = 7 Then
                \'MessageBox.Show("最多允许7层节点!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            \'End If          

    Select Case e.Node.Level      
                       
        Case 0
            Filter = "[项目工程名称] = \'" & Value(0) & "\'"
           
        Case 1
            Filter = "[项目工程名称] = \'" & Value(0) & "\' And [单项工程名称] = \'" & Value(1) & "\'"
        Case 2
            Filter = "[项目工程名称] = \'" & Value(0) & "\' And [单项工程名称] = \'" & Value(1) & "\' And [单位工程名称] = \'" & Value(2) & "\'"
           
        Case 3
            Filter = "[项目工程名称] = \'" & Value(0) & "\' And [单项工程名称] = \'" & Value(1)  & "\'And [单位工程名称] = \'" & Value(2) & "\' And [分项工程名称] = \'" & Value(3) & "\'"           
                 
    End Select
End If

Tables("工程量输入_电气").Filter = Filter

 

,目录树解决了,那筛选要怎么写


--  作者:有点甜
--  发布时间:2014/11/2 21:47:00
--  

Dim Filter As String = ""
Dim Value() As String
Value = e.Node.FullPath.Split("\\")
If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 0
            Filter = "[项目工程] = \'" & Value(0) & "\'"
           
        Case 1
            Filter = "[项目工程] = \'" & Value(0) & "\' And [单项工程] = \'" & Value(1) & "\'"
        Case 2
            Filter = "[项目工程] = \'" & Value(0) & "\' And [单项工程] = \'" & Value(1) & "\' And [单位工程] = \'" & Value(2) & "\'"
           
        Case 3
            Filter = "[项目工程] = \'" & Value(0) & "\' And [单项工程] = \'" & Value(1)  & "\'And [单位工程] = \'" & Value(2) & "\' And [分项工程] = \'" & Value(3) & "\'"
           
    End Select
End If

If DataTables("水卫工程量").Find(filter) IsNot Nothing Then
    Tables("水卫工程量").Filter = Filter
End If
If DataTables("电气工程量").Find(filter) IsNot Nothing Then
    Tables("电气工程量").Filter = Filter
End If


--  作者:建筑人生
--  发布时间:2014/11/2 22:09:00
--  
以下是引用有点甜在2014-11-2 21:47:00的发言:

Dim Filter As String = ""
Dim Value() As String
Value = e.Node.FullPath.Split("\\")
If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 0
            Filter = "[项目工程] = \'" & Value(0) & "\'"
           
        Case 1
            Filter = "[项目工程] = \'" & Value(0) & "\' And [单项工程] = \'" & Value(1) & "\'"
        Case 2
            Filter = "[项目工程] = \'" & Value(0) & "\' And [单项工程] = \'" & Value(1) & "\' And [单位工程] = \'" & Value(2) & "\'"
           
        Case 3
            Filter = "[项目工程] = \'" & Value(0) & "\' And [单项工程] = \'" & Value(1)  & "\'And [单位工程] = \'" & Value(2) & "\' And [分项工程] = \'" & Value(3) & "\'"
           
    End Select
End If

If DataTables("水卫工程量").Find(filter) IsNot Nothing Then
    Tables("水卫工程量").Filter = Filter
End If
If DataTables("电气工程量").Find(filter) IsNot Nothing Then
    Tables("电气工程量").Filter = Filter
End If


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

我这样写可以找到,Tables("工程量输入_电气").Filter = Filter


 

[此贴子已经被作者于2014-11-2 22:11:04编辑过]

--  作者:有点甜
--  发布时间:2014/11/2 22:15:00
--  

 

[此贴子已经被作者于2014-11-2 22:15:15编辑过]

--  作者:有点甜
--  发布时间:2014/11/2 22:16:00
--  
 写成 Tables("工程量输入_电器").DataTable
--  作者:建筑人生
--  发布时间:2014/11/2 22:16:00
--  

Dim Filter As String = ""
Dim Value() As String
Value = e.Node.FullPath.Split("\\")
If e.Node.Text <> "显示所有行" Then
Select Case e.Node.Level
Case 0
Filter = "[项目工程] = \'" & Value(0) & "\'"

Case 1
Filter = "[项目工程] = \'" & Value(0) & "\' And [单项工程] = \'" & Value(1) & "\'"
Case 2
Filter = "[项目工程] = \'" & Value(0) & "\' And [单项工程] = \'" & Value(1) & "\' And [单位工程] = \'" & Value(2) & "\'"

Case 3
Filter = "[项目工程] = \'" & Value(0) & "\' And [单项工程] = \'" & Value(1) & "\'And [单位工程] = \'" & Value(2) & "\' And [分项工程] = \'" & Value(3) & "\'"

End Select
End If

If DataTables("水卫工程量").Find(filter) IsNot Nothing Then
Tables("工程量输入_水卫").Filter = Filter
End If
If DataTables("电气工程量").Find(filter) IsNot Nothing Then
Tables("工程量输入_电气").Filter = Filter
End If

这样写就可以了,谢谢甜大师

[此贴子已经被作者于2014-11-2 22:18:18编辑过]