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
| 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 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 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'
Matériel_Client = New Matériel 'Créé un nouveau matériel
Nom_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel client au client.'
End If 'Fin de la condition.'
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 'Sinon, si c'est un clic sur le bouton "Enregistrer,"
If ComboBox.SelectedIndex <> 7 Then 'Si l'item sélectionné dans la ComboBox est différent de "Autre :", alors :'
type_produit = ComboBox.SelectedItem
Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Type_Produit = type_produit 'Le type de produit dans matériel client est égal au texte de l'item sélectionné dans la ComboBox.'
Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel.'
Else 'Sinon, si l'item sélectionné dans la ComboBox est "Autre ",'
type_produit = InputBox("Quel est le type de produit ?", "Type de produit.") 'Créé une fenêtre de saisie pour nommer le produit et entre ce nom dans la variable "type_produit".'
type_produit = "Autre : " & type_produit
If type_produit <> "" Then 'Si la variable type_produit contient du texte, alors :'
Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Type_Produit = type_produit 'Type_Produit prends la valeur "Autre : " suivit de la valeur de type_produit.
Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel.'
End If 'Fin de la condition.'
End If 'Fin de la condition.'
End If 'Fin de la condition.'
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.'
Nom_Client.Matériel(index).Référence.Add(Références) 'Ajoute une nouvelle référence au matériel client.'
With Nom_Client.Matériel(index).Référence(Nom_Client.Matériel(index).Référence.Count - 1)
.Marque = TextBox(0).Text
.Num_Série = TextBox(1).Text
.Tension_Entrée = TextBox(2).Text
If ComboBox.SelectedIndex = 0 Then 'Si combobox = Moteur Asynchrone :'
.Rotations_Par_Minutes = TextBox(3).Text
.Puissance = TextBox(4).Text
ElseIf ComboBox.SelectedIndex = 1 Then 'Si combobox = moteur brushless :'
.Rotations_Par_Minutes = TextBox(3).Text
.Référence_Codeur = TextBox(4).Text
.Puissance = TextBox(5).Text
ElseIf ComboBox.SelectedIndex = 2 Then 'si combobox = motoréducteur :'
Réducteur = New Réducteurs
Matériel_Client.Référence(Matériel_Client.Référence.Count - 1).Référence_Réducteur.Add(Réducteur)
.Rotations_Par_Minutes = TextBox(3).Text
With .Référence_Réducteur(Nom_Client.Matériel(index).Référence(Nom_Client.Matériel(index).Référence.Count - 1).Référence_Réducteur.Count - 1)
.Marque = TextBox(4).Text
.Num_Série = TextBox(5).Text
.Rapport_De_Réduction = TextBox(6).Text
End With
.Puissance = TextBox(7).Text
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
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