| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 
 |  
Imports MySql.Data.MySqlClient
 
 
Public Class FrmUser
    Dim MyCmd As MySqlCommand
    Dim MyDr As MySqlDataReader
    Dim Requette As String
    Dim z1, z2, z3, z4, z5, z6, z7, z8, z9 As String
    Dim doneByDoubleClick As Boolean = False
 
    Private Sub FrmUser_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            Requette = "select distinct nom from usertable where noeud<>'x' order by nom"
            MyCmd = New MySqlCommand(Requette, MyDb)
            MyDr = MyCmd.ExecuteReader
            While MyDr.Read()
                List1.Items.Add(MyDr.GetValue(0).ToString())
            End While
            MyDr.Close()
 
            RemplirTreeView()
 
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub
 
    Private Sub List1_Click(sender As Object, e As EventArgs) Handles List1.SelectedIndexChanged
        TxtUser.Text = List1.SelectedItem
        TxtUser.Enabled = False
        RemplirTreeView()
    End Sub
    Private Sub RemplirTreeView()
        Try
            TreeView1.Nodes.Clear()
            If TxtUser.Text = "" And TxtPwd.Text = "" Then Exit Sub
            TxtPwd.Text = ""
            Requette = "select distinct pass from usertable where  nom='" & TxtUser.Text & "' and app='" & My.Application.Info.AssemblyName & "' and autoris<>3"
            MyCmd = New MySqlCommand(Requette, MyDb)
            MyDr = MyCmd.ExecuteReader
            While MyDr.Read()
                TxtPwd.Text = MyDr.GetValue(0).ToString()
            End While
            MyDr.Close()
 
            Requette = "select * from usertable where app='" & My.Application.Info.AssemblyName & "' and nom='" & TxtUser.Text & "' order by cle"
            MyCmd = New MySqlCommand(Requette, MyDb)
            MyDr = MyCmd.ExecuteReader
            Dim hasRows As Integer = MyDr.HasRows
                While MyDr.Read()
                    Dim wCle As String = MyDr.GetValue(4).ToString()
                    Dim wCaption As String = MyDr.GetValue(6).ToString()
                    Dim wAutoris As Integer = MyDr.GetValue(5) - 1
                    z1 = wCle.Substring(0, 2)
                    With TreeView1
                        If wCle.Length = 2 Then
                            .Nodes.Add(wCle, wCaption, wAutoris, wAutoris)
                        ElseIf wCle.Length = 3 Then
                            .Nodes(z1).Nodes.Add(wCle, wCaption, wAutoris, wAutoris)
                        ElseIf wCle.Length = 4 Then
                            z2 = wCle.Substring(0, 3)
                            .Nodes(z1).Nodes(z2).Nodes.Add(wCle, wCaption, wAutoris, wAutoris)
                        ElseIf wCle.Length = 5 Then
                            z3 = wCle.Substring(0, 4)
                            .Nodes(z1).Nodes(z2).Nodes(z3).Nodes.Add(wCle, wCaption, wAutoris, wAutoris)
                        ElseIf wCle.Length = 6 Then
                            z4 = wCle.Substring(0, 5)
                            .Nodes(z1).Nodes(z2).Nodes(z3).Nodes(z4).Nodes.Add(wCle, wCaption, wAutoris, wAutoris)
                        ElseIf wCle.Length = 7 Then
                            z5 = wCle.Substring(0, 6)
                            .Nodes(z1).Nodes(z2).Nodes(z3).Nodes(z4).Nodes(z5).Nodes.Add(wCle, wCaption, wAutoris, wAutoris)
                        ElseIf wCle.Length = 8 Then
                            z6 = wCle.Substring(0, 7)
                            .Nodes(z1).Nodes(z2).Nodes(z3).Nodes(z4).Nodes(z5).Nodes(z6).Nodes.Add(wCle, wCaption, wAutoris, wAutoris)
                        ElseIf wCle.Length = 9 Then
                            z7 = wCle.Substring(0, 8)
                            .Nodes(z1).Nodes(z2).Nodes(z3).Nodes(z4).Nodes(z5).Nodes(z6).Nodes(z7).Nodes.Add(wCle, wCaption, wAutoris, wAutoris)
                        ElseIf wCle.Length = 10 Then
                            z8 = wCle.Substring(0, 9)
                            .Nodes(z1).Nodes(z2).Nodes(z3).Nodes(z4).Nodes(z5).Nodes(z6).Nodes(z7).Nodes(z8).Nodes.Add(wCle, wCaption, wAutoris, wAutoris)
                        ElseIf wCle.Length = 10 Then
                            z9 = wCle.Substring(0, 10)
                            .Nodes(z1).Nodes(z2).Nodes(z3).Nodes(z4).Nodes(z5).Nodes(z6).Nodes(z7).Nodes(z8).Nodes(z9).Nodes.Add(wCle, wCaption, wAutoris, wAutoris)
                        End If
                    End With
                End While
 
            MyDr.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub
 
    Private Sub TreeView1_NodeMouseDoubleClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseDoubleClick
        doneByDoubleClick = True
        Dim i As Integer = TreeView1.SelectedNode.SelectedImageIndex
        i = i + 1
        If i > 2 Then i = 0
        TreeView1.SelectedNode.SelectedImageIndex = i
        TreeView1.SelectedNode.ImageIndex = i
        Dim myNode As TreeNode = e.Node
        'MessageBox.Show(myNode.Text)
        GetChildNodes(myNode, i)
 
    End Sub
 
    Sub GetChildNodes(tnode As TreeNode, i As Integer)
 
        For Each node As TreeNode In tnode.Nodes
            node.ImageIndex = i
            If tnode.Nodes.Count > 0 Then GetChildNodes(node, i)
        Next
 
    End Sub
 
    Private Sub TreeView1_BeforeCollapse(sender As Object, e As TreeViewCancelEventArgs) Handles TreeView1.BeforeCollapse, TreeView1.BeforeExpand
        If doneByDoubleClick Then
            e.Cancel = True
            doneByDoubleClick = False
        End If
    End Sub
 
    Private Sub TreeView1_BeforeExpand(sender As Object, e As TreeViewCancelEventArgs) Handles TreeView1.BeforeExpand
        If doneByDoubleClick Then
            e.Cancel = True
            doneByDoubleClick = False
        End If
    End Sub
    Private Sub BtnEnregistrer_Click(sender As Object, e As EventArgs) Handles BtnEnregistrer.Click
 
        If TxtUser.Text = "" Then Exit Sub
 
        Requette = "delete from usertable where app='" & My.Application.Info.AssemblyName & "' and nom='" & TxtUser.Text & "'"
        MyCmd = New MySqlCommand(Requette, MyDb)
        MyDr = MyCmd.ExecuteReader
        MyDr.Close()
 
        For Each node1 As TreeNode In TreeView1.Nodes
            'requete pour enregister les données du parents
            For Each node2 As TreeNode In node1.Nodes
                'requete pour enregister les données du 1er enfants 
                For Each node3 As TreeNode In node2.Nodes
                     'requete pour enregister les données du 2eme enfants
                    For Each node4 As TreeNode In node3.Nodes
                        ' ...
                        For Each node5 As TreeNode In node4.Nodes
                            ' ...
                            For Each node6 As TreeNode In node5.Nodes
                                ' ...
                                For Each node7 As TreeNode In node6.Nodes
                                    ' ...
                                    For Each node8 As TreeNode In node7.Nodes
                                        ' ...
                                        For Each node9 As TreeNode In node8.Nodes
                                            ' ...
                                        Next
                                    Next
                                Next
                            Next
                        Next
                    Next
                Next
            Next
        Next
 
    End Sub
 
End Class | 
Partager