1 2 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