private void cmdOK_Click(object sender, RoutedEventArgs e) { if (validerFormulaire()) { ClasseBE classe = new ClasseBE(); classe.codeClasse = cmbClasse.Text; classe = trimestreBL.rechercherClasse(classe); TrimestreBE trimestre = new TrimestreBE(); trimestre.codetrimestre = cmbTrimestre.Text; trimestre = trimestreBL.rechercherTrimestre(trimestre); string nomprof = ""; List<string> codematieres = new List<string>(); List<string> codegroupes = new List<string>(); eleves.Clear(); recapitulatif.Clear(); LigneRecapitulatif ligne; eleves = trimestreBL.listeEleveDuneClasse(classe, annee); foreach (EleveBE eleve in eleves) { ligne = new LigneRecapitulatif(); ligne = trimestreBL.recapitulatifTrimestrielEleve(eleve, classe.codeClasse, trimestre.codetrimestre, annee); recapitulatif.Add(ligne); } codematieres = trimestreBL.listeCodeMatiereDuneClasse(classe.codeClasse, annee); codegroupes = trimestreBL.listeCodeGroupeDuneClasse(classe.codeClasse, annee); nomprof = trimestreBL.obtenirProfTitulaire(classe.codeClasse, annee); CreerEtat etat = new CreerEtat("recapitulatifTrimestriel-" + classe.codeClasse + "-" + trimestre.codetrimestre, "Récapitulatif des notes du : " + trimestre.nomtrimestre); trimestreBL.journaliser("Impression du recapitulatif trimestriel de "+classe.codeClasse+" du "+trimestre.codetrimestre); // on tri la liste suivant le nom croissant avant d'imprimer List<LigneRecapitulatif> tampon = recapitulatif.OrderBy(o => o.nom).ToList(); recapitulatif.Clear(); foreach (LigneRecapitulatif l in tampon) recapitulatif.Add(l); double moyenne = trimestreBL.obtenirMoyenneClasse(cmbClasse.Text, cmbTrimestre.Text, annee); etat.recapitulatifNotes(recapitulatif, classe, nomprof, codematieres, codegroupes, annee, moyenne); } }
public LigneRecapitulatif recapitulatifAnnuelEleve(EleveBE eleve, string codeclasse, int annee) { LigneRecapitulatif ligne = new LigneRecapitulatif(); #region recuperation des infos sur les moyennes des groupes et le rang ainsi que la moyenne sequentielle try { // Création d'une commande SQL MySqlCommand cmd = con.connexion.CreateCommand(); // Requête SQL cmd.CommandText = "SELECT ms.matricule, p.codegroupe,SUM(ms.moyenne * p.coef) / SUM(coef) moyenne " + " FROM moyennesannuelles ms, programmer p " + " WHERE ms.codemat = p.codemat " + " AND ms.annee = p.annee " + " AND p.codeclasse = " + "'" + codeclasse + "'" + " AND ms.annee = " + "'" + annee + "'" + " AND ms.matricule = " + "'" + eleve.matricule + "'" + " GROUP BY p.codegroupe " + " order by p.codegroupe"; using (MySqlDataReader dataReader = cmd.ExecuteReader()) { Dictionary <string, double> dict = new Dictionary <string, double>(); while (dataReader.Read()) { dict.Add(Convert.ToString(dataReader["codegroupe"]), Convert.ToDouble(dataReader["moyenne"])); } ligne.moyennesGroupe = new Dictionary <string, double>(dict); dataReader.Close(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } #endregion #region recuperation des infos sur les notes sequentielle des matieres try { // Création d'une commande SQL MySqlCommand cmd = con.connexion.CreateCommand(); // Requête SQL cmd.CommandText = "SELECT ms.matricule, ms.rang as rang, ms.moyenne as moyenne, ms.codemat " + " FROM moyennesannuelles ms, programmer p " + " WHERE ms.codemat = p.codemat " + " AND ms.annee = p.annee " + " AND p.codeclasse = " + "'" + codeclasse + "'" + " AND ms.annee = " + "'" + annee + "'" + " AND ms.matricule = " + "'" + eleve.matricule + "'" + " GROUP BY p.codegroupe;"; using (MySqlDataReader dataReader = cmd.ExecuteReader()) { Dictionary <string, double> dict = new Dictionary <string, double>(); while (dataReader.Read()) { dict.Add(Convert.ToString(dataReader["codemat"]), Convert.ToDouble(dataReader["moyenne"])); } ligne.moyennesSequentielles = new Dictionary <string, double>(dict); dataReader.Close(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } #endregion #region reste des informations concernant la ligne ligne.nom = eleve.nom; try { // Création d'une commande SQL MySqlCommand cmd = con.connexion.CreateCommand(); // Requête SQL cmd.CommandText = "SELECT rang, moyenne, point as total FROM resultattrimestriel " + " WHERE matricule = " + "'" + eleve.matricule + "'" + " AND annee = " + "'" + annee + "'"; using (MySqlDataReader dataReader = cmd.ExecuteReader()) { while (dataReader.Read()) { ligne.rang = Convert.ToInt32(dataReader["rang"]); ligne.moyenne = Convert.ToDouble(dataReader["moyenne"]); ligne.total = Convert.ToDouble(dataReader["total"]); } dataReader.Close(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } #endregion return(ligne); }