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 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259
| Public Class Ajouter_matériel
Dim ComboBox As New ComboBox 'Créé une nouvelle Combobox nommée ComboBox.'
Dim Label As New List(Of Label) 'Créé une nouvelle liste de Label nommée Label.'
Dim TextBox As New List(Of TextBox) 'Créé une nouvelle liste de TextBox nommée TextBox.'
Dim Boutons As New List(Of Button) 'Créé une nouvelle liste de Button nommée Boutons.'
Dim type_produit As String = "" 'Créé une chaine de caractères nommée type_produit.'
Dim text_inputBox As String = ""
Dim Annuler_inputBox As Boolean = False
Dim Police_Labels As Font 'Créé une police.'
Private Sub Ajouter_matériel_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'S'exécute lors du chargement de la fenêtre.'
With ComboBox 'Avec le terme "ComboBox",'
.Visible = True 'La combobox sera visible dès le chargement de la fenêtre d'ajout de matériel.'
.DropDownStyle = ComboBoxStyle.DropDownList 'Définit la ComboBox comme non modifiable par l'utilisateur.'
.Width = 150 'Règle la largeur de la ComboBox à 150 pixels.'
With .Items 'Avec le terme ".Items",'
.Add("Moteur Asynchrone.") 'Ajouter l'item "Moteur Asynchrone.".'
.Add("Moteur Brushless.") 'Ajouter l'item "Moteur Brushless.".'
.Add("Motoréducteur.") 'Ajouter l'item "Motoréducteur.".'
.Add("Variateur.") 'Ajouter l'item "Variateur.".'
.Add("Poste à souder.") 'Ajouter l'item "Poste à souder.".'
.Add("Découpeur Plasma.") 'Ajouter l'item "Découpeur Plasma.".'
.Add("Chargeur Démarreur.") 'Ajouter l'item "Chargeur Démarreur.".'
.Add("Autre.") 'Ajouter l'item "Autre.".'
End With
End With
For i As Integer = 0 To 1
Boutons.Add(New Button) 'Ajoute un nouveau Button à la liste Boutons."
Boutons(i).Width = 150 'Définit la largeur du Button créé.'
AddHandler Boutons(i).Click, AddressOf Boutons_Click 'Créé un événement lors d'un clic sur le nouveau Button, et lance le sous-programme Boutons_Click.'
Next
FlowLayoutPanel.AutoScroll = True 'Donne au FlowLayoutPanel la possibilité d'addapter une barre de défillement si necessaire.'
FlowLayoutPanel.Controls.Add(ComboBox) 'Ajoute la ComboBox dans le FlowLayoutPanel.'
AddHandler ComboBox.SelectedIndexChanged, AddressOf ComboBox_ChangeIndex 'Créé un événement lorsque l'élément dans la comboBox est changé par l'utilisateur.'
End Sub
Private Sub ComboBox_ChangeIndex() 'S'exécute lorsque un item de la ComboBox est changé.'
Label.Clear() 'Supprime tous les Labels dans la liste "Label".'
TextBox.Clear() 'Supprime toutes les TextBox dans la liste "TextBox".'
FlowLayoutPanel.Controls.Clear() 'Supprime tous les controles présents dans le "FlowLayoutPanel".'
ComboBox.Height = 40 'Change la hauteur de la ComboBox pour une bonne mise en page.'
FlowLayoutPanel.Controls.Add(ComboBox) 'Ajoute la ComboBox avec sa nouvelle taille dans le "FlowLayoutPanel".'
If ComboBox.SelectedIndex = 0 Or ComboBox.SelectedIndex = 3 Or ComboBox.SelectedIndex = 6 Or ComboBox.SelectedIndex = 7 Then 'Si l'item sélectionné dans la ComboBox est "Moteur Asynchrone." ou "Variateur." ou "Chargeur Demarreur." ou "Autre.",'
For i As Integer = 0 To 4 'Boucle de 4 rotations. Chaque rotation ajoute +1 à i.'
Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
Next 'Ajoute +1 à i tant que i est différent de 4.'
If ComboBox.SelectedIndex = 0 Then 'Si l'item sélectionné dans la ComboBox est "Moteur Asynchrone.",'
Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
Else 'Sinon (si l'item sélectionné dans la ComboBox est "Variateur." ou "Chargeur Demarreur." ou "Autre",)
Label(3).Text = "Tension de sortie :" 'Définit le texte du Label(3).'
End If 'Fin de la condition.'
Label(4).Text = "Puissance :" 'Définit le texte du Label(4).'
ElseIf ComboBox.SelectedIndex = 1 Then 'Sinon si l'item sélectionné dans la ComboBox est "Moteur Brushless",'
For i As Integer = 0 To 5 'Boucle de 5 rotations. Chaque rotation ajoute +1 à i.'
Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
Next 'Ajoute +1 à i tant que i est différent de 5.'
Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
Label(4).Text = "Référence du codeur :" 'Définit le texte du Label(4).'
Label(5).Text = "Puissance :" 'Définit le texte du Label(5).'
ElseIf ComboBox.SelectedIndex = 2 Then 'Sinon si l'item sélectionné dans la ComboBox est "Motoréducteurs",'
For i As Integer = 0 To 7 'Boucle de 7 rotations. Chaque rotation ajoute +1 à i.'
Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
Next 'Ajoute +1 à i tant que i est différent de 7.'
Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
Label(4).Text = "Marque du réducteur :" 'Définit le texte du Label(4).'
Label(5).Text = "N° de série du réducteur :" 'Définit le texte du Label(5).'
Label(6).Text = "Rapport de réduction :" 'Définit le texte du Label(6).'
Label(7).Text = "Puissance :" 'Définit le texte du Label(7).'
ElseIf ComboBox.SelectedIndex = 4 Or ComboBox.SelectedIndex = 5 Then 'Sinon si l'item sélectionné dans la ComboBox est "Poste à souder" ou "Découpeur Plasma",'
For i As Integer = 0 To 3 'Boucle de 3 rotations. Chaque rotation ajoute +1 à i.'
Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
Next 'Ajoute +1 à i tant que i est différent de 3.'
Label(3).Text = "Puissance :" 'Définit le texte du Label(3).'
End If 'Fin de la condition.'
FlowLayoutPanel.SetFlowBreak(ComboBox, True) 'Oblige l'interface à aller à la ligne après la ComboBox dans le FlowLayoutPanel.'
ComboBox.Height = 21 'Définit la hauteur de la ComboBox à 21 pixels.'
Label(0).Text = "Marque :" 'Définit le texte du Label(0).'
Label(1).Text = "N° de série :" 'Définit le texte du Label(1).'
Label(2).Text = "Tension d'alimentation :" 'Définit le texte du Label(2).'
For i As Integer = 0 To 1 'Boucle de 1 rotations. Chaque rotation ajoute +1 à i.'
FlowLayoutPanel.Controls.Add(Boutons(i)) 'Ajoute le "Boutons(i)" créé au chargement de la fenêtre dans le "FlowLayoutPanel".'
Next 'Ajoute +1 à i tant que i est différent de 1.'
Boutons(0).Text = "Annuler" 'Définit le texte du Boutons(0).'
Boutons(1).Text = "Enregistrer" 'Définit le texte du Boutons(1).'
End Sub
Private Sub Boutons_Click() 'S'exécute lors d'un clic sur un des 2 Boutons créé lors du chargement de la fenêtre.'
If Boutons(0).Focused Then 'Si c'est un clic sur le bouton "Annuler", alors :'
Lecture_Fiche_Client.Show() 'Affiche la page d'accueuil.'
Me.Close() 'Ferme la fenêtre en cours.'
Else
If Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(ComboBox.SelectedItem)) < 0 Then 'Si l'item sélectionné dans la ComboBox n'est pas trouvée dans le fichier client et renvoie donc la valeur -1'
If ComboBox.SelectedIndex <> 7 Then 'Si l'item sélectionné dans la ComboBox est différent de "Autre :", alors :'
Matériel_Client = New Matériel 'Créé un nouveau matériel
type_produit = ComboBox.SelectedItem
Matériel_Client.Type_Produit = type_produit 'Le type de produit dans matériel client est égal au texte de l'item sélectionné dans la ComboBox.'
Nom_Client.Matériel.Add(Matériel_Client)
Else 'Sinon, si l'item sélectionné dans la ComboBox est "Autre ",'
text_inputBox = InputBox("Quel est le type de matériel ?", "Type de matériel.") 'Créé une fenêtre de saisie pour nommer le produit et entre ce nom dans la variable "type_produit".'
type_produit = "Autre : " & text_inputBox
If text_inputBox <> "" Then 'Si la variable type_produit contient du texte, alors :'
If Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(type_produit)) < 0 Then 'Si le type de produit n'est pas trouvée dans le fichier client et renvoie donc la valeur -1,'
Matériel_Client = New Matériel 'Créé un nouveau matériel.'
Matériel_Client.Type_Produit = type_produit
Nom_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel client au client.'
Else
index = Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(type_produit))
Nom_Client.Matériel(index).Type_Produit = type_produit 'Type_Produit prends la valeur "Autre : " suivit de la valeur de type_produit.
End If
Else
Annuler_inputBox = True
End If 'Fin de la condition.'
End If 'Fin de la condition.'
Else
type_produit = ComboBox.SelectedItem
End If 'Fin de la condition.'
If Not Annuler_inputBox Then
Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel.
Else
Annuler_inputBox = False
End If
End If
End Sub
Private Sub Mise_En_Page_Ajout_Matériel(i As Integer)
Label.Add(New Label) 'Ajoute un nouveau Label dans la liste Label.'
TextBox.Add(New TextBox) 'Ajoute une nouvelle TextBox dans la liste TextBox.'
With Label(i) 'Avec le terme Label(i), (i = numéro de rotation)'
.Height = TextBox(i).Height 'Règle la hauteur du Label(i) au même niveau que la hauteur de la TextBox(i).'
.Width = 150 'Règle la largeur du Label(i) à 150 pixels.'
.TextAlign = ContentAlignment.MiddleLeft 'Définit l'alignement du texte contenu dans le Label(i) comme centré à gauche.'
.Font = New Font("Comic Sans Ms", 10.0!, FontStyle.Bold, GraphicsUnit.Point, CType(0, Byte))
End With
TextBox(i).Width = 150 'Définit la largeur de la TextBox(i) à 150 pixels.'
FlowLayoutPanel.Controls.Add(Label(i)) 'Ajoute le Label(i) dans le FlowLayoutPanel.'
FlowLayoutPanel.Controls.Add(TextBox(i)) 'Ajoute la TextBox(i) dans le FlowLayoutPanel.'
FlowLayoutPanel.SetFlowBreak(TextBox(i), True) 'Oblige l'interface à aller à la ligne après chaque TextBox(i) dans le FlowLayoutPanel.'
End Sub
Private Sub Enregistrement_Matériel()
index = Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(type_produit)) 'Détermine la position du matériel, dans Nom_Client.'
Références = New Référence 'Créé une nouvelle référence.'
With Références
.Marque = TextBox(0).Text
.Num_Série = TextBox(1).Text
.Tension_Entrée = TextBox(2).Text
If ComboBox.SelectedIndex = 0 Or ComboBox.SelectedIndex = 1 Or ComboBox.SelectedIndex = 2 Then 'Si combobox = Moteur Asynchrone :'
.Rotations_Par_Minutes = TextBox(3).Text
If ComboBox.SelectedIndex = 1 Then
.Référence_Codeur = TextBox(4).Text
.Puissance = TextBox(5).Text
ElseIf ComboBox.SelectedIndex = 2 Then
Réducteur = New Réducteurs
With Réducteur
.Marque = TextBox(4).Text
.Num_Série = TextBox(5).Text
.Rapport_De_Réduction = TextBox(6).Text
End With
.Référence_Réducteur.Add(Réducteur)
.Puissance = TextBox(7).Text
Else
.Puissance = TextBox(4).Text
End If 'Fin de la condition.'
ElseIf ComboBox.SelectedIndex = 4 Or ComboBox.SelectedIndex = 5 Then 'si combobox = Poste à souder ou Découpeur Plasma :'
.Puissance = TextBox(3).Text
Else
.Tension_Sortie = TextBox(3).Text
.Puissance = TextBox(4).Text
End If 'Fin de la condition.'
End With
Nom_Client.Matériel(index).Référence.Add(Références) 'Ajoute une nouvelle référence au matériel client.'
Enregistre_Fiche_Client(Fichier_Client, Nom_Client) 'Lance le sous programme d'enregistrement, qui va enregistrer dans le fichier client, le nouveau matériel.'
If Not Erreur Then 'Si aucune erreur ne ce produit lors de l'enregistrement, alors :'
MsgBox("Matériel ajouté au client " & Nom_Client.Société.Nom & " avec succes.", MsgBoxStyle.Information, "Opération Réussie.") 'Affiche un message comme quoi tout c'est bien déroulé.'
End If 'Fin de la condition.'
End Sub
End Class |
Partager