/// <summary> /// Permet d'afficher dans la datagridView les clients ajoutés /// On définit une dataTable qui sera alimentée par les données de nos clients /// Cette procédure sera ensuite appelée au niveau dès le chargement du formulaire /// (constructeur du form ou evenement load) /// </summary> public void afficheClient() { //DataTable permettant de recopier les clients stockés dans la collection DataTable dt = new DataTable(); // Ligne de la dataTable DataRow dr; //Variable de boucle int j; dt.Columns.Add(new DataColumn("Raison sociale", typeof(System.String))); dt.Columns.Add(new DataColumn("Ville", typeof(System.String))); dt.Columns.Add(new DataColumn("Code postal", typeof(System.Int32))); dt.Columns.Add(new DataColumn("Privé", typeof(System.Boolean))); dt.Columns.Add(new DataColumn("Activité", typeof(System.String))); dt.Columns.Add(new DataColumn("Nature", typeof(System.String))); // boucle de remplissage de la DataTable à partir de la collection for (j = 0; j < Donnees.arrayClients.Count; j++) { // Seb : pourquoi déjà on instancie ici ? Dans l'exo7 on ne le fait pas (en tous cas pas là) MClients client = (MClients)Donnees.getClientById(j); //Instanciation de la datarow dr = dt.NewRow(); //Affectation des colonnes //Code proposé par Seb //Dans l'exo7 voici la syntaxe : //dr[0] = ((MClients)(Donnees.ArrayClients[j])).RaisonSociale; //etc dr[0] = client.RaisonSociale; dr[1] = client.Ville; dr[2] = client.CodePostal; dr[3] = client.ClientPrive; dr[4] = client.Activite; dr[5] = client.Nature; //Ajout de la ligne à la dataTable dt.Rows.Add(dr); } // détermine l'origine des données à afficher dans la datagriedview this.grdListe.DataSource = dt.DefaultView; // rafraichi le datagriedview this.grdListe.Refresh(); dt = null; // utile ? dr = null; // utilité ? }
private void grdListe_DoubleClick(object sender, EventArgs e) { Int32 iClient; iClient = this.grdListe.CurrentRow.Index; //Code suivant mis en commentaire : pourquoi ajouter ça ? // instancie un objet client vers le form de consultation client d'origine dans la collection // Code proposé par Seb //Dans l'exo 7 // MClients leClient = Donnees.ArrayClients[iClient] as MClients MClients leClient = Donnees.getClientById(iClient) as MClients; // instancie le form "Nouveau Contact" qui correspond à la création du contact frmConsultationClient frmConsultation = new frmConsultationClient(leClient); // affiche le form de la création de contact en modal frmConsultation.ShowDialog(); // rafaichit la datagriedview quand le form est fermé this.afficheClient(); }
public void afficheContact() { DataTable dataContact = new DataTable(); DataRow dr; int j; dataContact.Columns.Add(new DataColumn("Nom", typeof(System.String))); dataContact.Columns.Add(new DataColumn("Prenom", typeof(System.String))); dataContact.Columns.Add(new DataColumn("Telephone", typeof(System.Int32))); dataContact.Columns.Add(new DataColumn("Email", typeof(System.String))); dataContact.Columns.Add(new DataColumn("Fonction", typeof(System.String))); // boucle de remplissage de la DataTable à partir de la collection // à ameliorer: on va chercher dans Donnees la liste des commerciaux correspondants // à ceux du client. Puis on parcourt cette nouvelle liste pour créer les dataContact // ArrayList commerciaux = Donnees.getCommercialByumClient(leClient.NumClient); // for (j=0; j < commerciaux.Count; j++) for (j = 0; j < Donnees.arrayCommercial.Count; j++) { dr = dataContact.NewRow(); MCommercial mCommercial = (MCommercial)(Donnees.getCommercialById(j)); if (mCommercial.NumClient == this.leClient.NumClient) { dr[0] = mCommercial.NomContact; dr[1] = mCommercial.PrenomContact; dr[2] = mCommercial.TelephoneContact; dr[3] = mCommercial.Email; dr[4] = mCommercial.Fonction; dataContact.Rows.Add(dr); } } // détermine l'origine des données à afficher dans la datagriedview this.grdContact.DataSource = dataContact.DefaultView; // rafraichi le datagriedview this.grdContact.Refresh(); }