// Choix d'un projet dans la combo private void cboProjets_SelectedIndexChanged(object sender, EventArgs e) { if (cboProjets.SelectedIndex != -1) { // Chargement du datagridview //----------------------------- leProjetEnCours = (ProjetForfait)cboProjets.SelectedItem; // afficher prévisions AfficherPrevisions(); lblTitre.Visible = true; btnCreer.Visible = true; } }
// Valider private void btnValider_Click(object sender, EventArgs e) { // Controle la saisie des champs //============================== decimal mtContrat; DateTime dateDebut, dateFin; // test champ alpha : au moins 1 caractere if (!Regex.IsMatch(txtNomProjet.Text, @"^[A-Za-z ]+$"))// espace autorisé { Affichage.ErreurSaisie(txtNomProjet, "Nom projet invalide"); } // test Date // attention date de format jj/mm passe avec tryParse , année en cours par défaut // on pourrait ajouter le controle du format jj/mm/aaaa par expression régulière else if (!DateTime.TryParse(txtDateD.Text, out dateDebut)) { Affichage.ErreurSaisie(txtDateD, "Date invalide"); } else if (!DateTime.TryParse(txtDateF.Text, out dateFin)) { Affichage.ErreurSaisie(txtDateF, "Date invalide"); } // DateDebut < DateFin else if (dateDebut.CompareTo(dateFin) > 0) { Affichage.ErreurSaisie(txtDateD, "La date de début doit être inférieure à la date du jour"); } // test client sélectionnée else if (cboClients.SelectedIndex == -1) { Affichage.ErreurSaisie(cboClients, "Sélectionnez un client"); } //Contact, non obligatoire, mais alpha si saisi else if (!Regex.IsMatch(txtNomProjet.Text, @"^[A-Za-z ]*$"))// espace autorisé { Affichage.ErreurSaisie(txtNomProjet, "Ne peut contenir que des caractères"); } // test Adresse mail, avec utilisation System.Net.Mail else if (!IsValidEMail(txtMail.Text)) { Affichage.ErreurSaisie(txtMail, "Adresse mail erronée"); } // test collaborateur sélectionnée else if (cboCollaborateurs.SelectedIndex == -1) { Affichage.ErreurSaisie(cboCollaborateurs, "Sélectionnez un chef de projet"); } // test mt contrat else if (!Decimal.TryParse(txtMtContrat.Text, out mtContrat)) { Affichage.ErreurSaisie(txtMtContrat, "Montant contrat invalide"); } else // saisie OK { //Affectation du code penalite : utilisation de l'opérateur ternaire //Penalite cp; //if (rbPenNon.Checked) cp = Penalite.Non; //else cp = Penalite.Oui; ProjetForfait oProjet = new ProjetForfait(txtNomProjet.Text, dateDebut, dateFin, (Client)cboClients.SelectedItem, txtContact.Text, txtMail.Text, mtContrat, rbPenNon.Checked ? Penalite.Non:Penalite.Oui, (Collaborateur)cboCollaborateurs.SelectedItem); bool success; try { if (creation) // Création { int code = DaoProjet.AddProjet(oProjet); oProjet.CodeProjet = code; success = true; // ajout dans la combo au travers du binding projetForfaitBindingSource.Add(oProjet); } else // Modification { oProjet.CodeProjet = codeProjet; DaoProjet.UpdProjet(oProjet); success = true; // modif du bindingSource int rang = projetForfaitBindingSource.IndexOf(oProjet); if (rang != -1) projetForfaitBindingSource[rang] = oProjet; } // Echec ou succes ? if (success) { // actualisation projetForfaitBindingSource.ResetBindings(false); cboProjets.SelectedItem = oProjet; // Affichage en visu AfficheForm("V"); } // sinon on reste en l'état } catch (DaoExceptionFinAppli defa) { MessageBox.Show(defa.Message); Application.Exit(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
public FrmPrevisionnel(ProjetForfait pf) { InitializeComponent(); leProjetEnCours = pf; }
public static List<Projet> GetAllProjetForfaits() { List<Projet> Projets = new List<Projet>(); // création connection using (SqlConnection sqlConnect = GetConnection()) { // projet forfait using (SqlCommand sqlCde = new SqlCommand()) { //initialiser la connection de la commande sqlCde.Connection = sqlConnect; // chargement des qualifications String strSql = "GetAllProjetForfaits"; sqlCde.CommandText = strSql; sqlCde.CommandType = CommandType.StoredProcedure; // Exécution de la commande try { SqlDataReader sqlRdr = sqlCde.ExecuteReader(); while (sqlRdr.Read()) { // mt contrat et Penalite : jamais null pour les forfaits // Champs null possibles : contact client et mailcontact gérés par ToString() // Affectation Penalite //Penalite pen = Penalite.Non; //if (sqlRdr.GetBoolean(8) == true) pen = Penalite.Oui; // non utilisé , utilisation opérateur ternaire dans le constructeur // Création objet ProjetForfait oProjetForfait = new ProjetForfait(sqlRdr.GetInt32(0), sqlRdr.GetString(1), sqlRdr.GetDateTime(2), sqlRdr.GetDateTime(3), new Client() { CodeClient = sqlRdr.GetInt32(6) }, sqlRdr[4].ToString(), sqlRdr[5].ToString(), sqlRdr.GetDecimal(7), sqlRdr.GetBoolean(8)? Penalite.Oui: Penalite.Non, new Collaborateur() { CodeColl = sqlRdr.GetInt32(9) }); // ajout liste Projets.Add(oProjetForfait); } sqlRdr.Close(); return Projets; } catch (SqlException se) { throw new DaoExceptionFinAppli("Lecture des projets forfait impossible, l'application va se fermer: \n" + se.Message, se); } } } }