Pré-requis :
Il faut disposer de l'application "Commerciaux" fonctionnant et produisant un fichier sérialisé.
Rappel : lorsque l'on crée une application VS, l'environnement crée une solution et un projet, c'est dans le projet que l'on écrit le code et qui contient la méthode Main ; une solution peut contenir plusieurs projets.
Ouvrons la solution/projet contennant l'application Commerciaux"
A partir de l'explorateur de solution, ajoutons (click droit) un nouveau projet (WF_Commerciaux) de type Application Windows ; la configuration devient :
En cliquant (click droit) sur ce nouveau projet, indiquer que ce projet est
le projet de demarrage.
Par ailleurs dans chaque formulaire créé, il faudra ajouter l'inclusion
du namespace "commerciaux" (si c'est le nom du namespace de
votre projet console).
using Commerciaux;
Il faut aussi indiquer que chaque classe du projet console est public. Ajouter
pour chaque classe :
public class Commercial // pour la classe Commercial
En effet, par défaut chaque classe d'un namespace n'est visible qu'à l'intérieur du namespace.
Cette application contient plusieurs formulaires. L'application (les fichiers
exécutables et le fichier de données sérialisé)
est diponible ici.
Après avoir télécharger le fichier zip, il faut décompresser
l'ensemble et lancer l'application WF_Commerciaux.exe.
L'application commence par ouvrir le fichier de données : Fichier/ouvrir
le fichier service.sr.
Travail à faire
Tester et observer l'application.
2.1- Le formulaire principal
Il permet de sélectionner les deux options du menu Fichier et d'accéder au menu Commercial.
Travail à faire
Construire ce formulaire en ajoutant un composant de type MenuStrip ; remplir
le menu avec ses options.
Ce formulaire est le formulaire principal et contient les autres ; ceci est possible grâce au mécanisme de fenêtre MDI ; dans la fenêtre de propriété du formulaire indiquer que ce formulaire est un conteneur MDI :
L'option Ouvrir lance une boite de dialogue allant chercher un fichier; c'est l'objet OpenFileDialog qui s'en chargera; ce n'est pas un composant graphique mais ses services pourront être utilisés dans le code.
Travail à faire
- Déposer un objet OpenFileDialog dans
le formulaire
- Ajouter deux champs privés dans le formulaire
- Dans l'événement click du menu fichier/ouvrir,
écrire le code qui :
1) ouvre la boite de dialogue,
2) récupère le fichier sélectionné par l'utilisateur,
3) appelle la méthode qui charge le ServiceCommercial à
partir du fichier.
- Dans l'événement click du menu fichier/enregistrer, écrire
le code qui permet de sauvegarder le ServiceCommercial dans le fichier.
Les options du menu Commercial ouvre chacune un formulaire différent. C'est l'événement click de chaque sous-menu qui appellera le nouveau formulaire.
Chaque formulaire a besoin du ServiceCommercial récupéré
dans le formulaire principal ; le formulaire principal passera cet objet
à la construction :
La première ligne crée un nouveau formulaire (d'ajout d'un commercial)
La seconde ligne indique que son formulaire parent est le formulaire courant.
La troisième ligne montre le formulaire.
Ceci ne peut se faire bien sûr que si un formulaire nommé ici FrmAjoutCommercial a été créé en conception et que son constructeur a été modifié. Chaque classe formulaire contiendra un champ privé de type ServiceCommercial.
Travail à faire
Effectuer cette opération pour les trois formulaires, dans un premier
temps chaque formulaire créé ne contiendra rien.
Tester et vérifier que chaque formulaire s'ouvre
bien à partir des menus.
Celui-ci contient différentes contrôles :
La première chose à faire après le dépot des composants sur le formulaire est de modifier la propriété Name, en respectant les règles suivantes :
Composant
|
Préfixe
|
Exemple
|
Formulaire | Frm | FrmAjoutCommercial |
Button | btn | btnValider |
TextBox | txt | txtNom |
Label | lbl | lblNom |
ListBox | lst | lstPuissance |
GroupBox | grBox | grBoxCategorie |
RadioButton | rdBtn | rdBtnCategorie |
CheckBox | chk | chkVille |
DateTimerPicker | dtp | dtpDate |
ComboBox | cbm | cbmNom |
Il n'est pas nécessaire de renommer les composants qui ne seront jamais
utilisés dans le code comme c'est souvent le cas des Label.
Travail à faire
Construire le formulaire. Tester que le nouveau commercial est bien enregistré
dans le fichier sérialisé.
2.3- Le formulaire d'ajout de notes de frais
La liste des commerciaux est remplie à partir de tous les commerciaux
du service commercial (méthode Add, cf plus haut).
La sélection d'un radioButton fait apparaître les champs nécessaires à la saisie de la note de frais concernée (cf démo)
Le bouton valider ajoute au commercial sélectionné la note de frais (Transport, midi ou nuité) correspondante. Pour récupérer le commercial, il faudra extraire le nom et le prénom à partir de la sélection de la liste (SelectedItem) en utilisant la méthode split de la chaîne.
Travail à faire
Construire le formulaire. Imaginer un test pour vérifier que la note
de frais a bien été ajoutée au bon commercial.
2.4- Le formulaire de visualisation des notes de frais
La gestion de la liste des commerciaux est identique au formulaire précédent.
Lorsque l'on clique sur un commercial, ses notes apparaîssent (événement
selectedIndexChanged) . Il faudra utiliser la méthode ToString
écrite dans l'application console.
Travail à faire
Construire le formulaire. Tester.