//-------- méthodes qui recherche les statistiques d'une année d'une classe public StatistiqueClasseBE getStatistiqueDuneAnnee(String codeClasse, int annee) { //string codeClasse; int effectif; int nbAdmis; string pourcentageAdmis; int nbEchec; string pourcentageEchec; StatistiqueClasseBE stat; try { // Création d'une commande SQL MySqlCommand cmd = con.connexion.CreateCommand(); cmd.CommandText = "SELECT e.codeClasse, e.effectif, r.nbAdmis, ((r.nbAdmis / e.effectif)*100) as PourcentageAdmis, " + "(e.effectif - r.nbAdmis) as nbEchec, (((e.effectif - r.nbAdmis) / e.effectif))*100 as PourcentageEchec " + "FROM (SELECT codeClasse, count(*) as effectif " + "FROM inscrire " + "WHERE codeClasse = '" + codeClasse + "' AND annee = '" + annee + "' GROUP BY codeClasse) e, " + "(SELECT count(*) as nbAdmis " + "FROM resultatannuel " + "WHERE matricule in (SELECT matricule FROM inscrire WHERE codeClasse = '" + codeClasse + "' AND annee = '" + annee + "') " + "AND annee = '" + annee + "' AND decision = 'Admis') r;"; using (MySqlDataReader dataReader = cmd.ExecuteReader()) { //fabriquer l'objet à retourner while (dataReader.Read()) { //codeClasse = Convert.ToString(dataReader["codeclasse"]); effectif = Convert.ToInt16(dataReader["effectif"]); nbAdmis = Convert.ToInt16(dataReader["nbAdmis"]); pourcentageAdmis = Convert.ToString(Math.Round(Convert.ToDecimal(dataReader["PourcentageAdmis"]), 2)) + "%"; nbEchec = Convert.ToInt16(dataReader["nbEchec"]); pourcentageEchec = Convert.ToString(Math.Round(Convert.ToDecimal(dataReader["PourcentageEchec"]), 2)) + "%"; stat = new StatistiqueClasseBE(codeClasse, effectif, nbAdmis, pourcentageAdmis, nbEchec, pourcentageEchec); return(stat); } return(null); } } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } }
private void cmdOK_Click_New(object sender, RoutedEventArgs e) { if (validerFormulaire()) { ClasseBE classe = new ClasseBE(); classe.codeClasse = cmbClasse.Text; classe = sequenceBL.rechercherClasse(classe); SequenceBE sequence = new SequenceBE(); sequence.codeseq = cmbSequence.Text; sequence = sequenceBL.rechercherSequence(sequence); string nomprof = ""; List <string> codematieres = new List <string>(); List <string> codesanctions = new List <string>(); eleves.Clear(); recapitulatif_new.Clear(); LigneRecapSeq ligne; eleves = sequenceBL.listeEleveDuneClasse(classe, annee); foreach (EleveBE eleve in eleves) { ligne = new LigneRecapSeq(); ligne = sequenceBL.recapitulatifSequentielEleve_new(eleve, classe.codeClasse, sequence.codeseq, annee); recapitulatif_new.Add(ligne); } nomprof = sequenceBL.obtenirProfTitulaire(classe.codeClasse, annee); codematieres = sequenceBL.listeCodeMatiereDuneClasse(classe.codeClasse, annee); codesanctions = disciplineBL.listerCodeDiscipline(); sequenceBL.journaliser("Impression du recapitulatif sequentiel de " + classe.codeClasse + " de la " + sequence.codeseq); // on tri la liste suivant le nom croissant avant d'imprimer List <LigneRecapSeq> tampon = recapitulatif_new.OrderBy(o => o.nom).ToList(); recapitulatif_new.Clear(); foreach (LigneRecapSeq l in tampon) { recapitulatif_new.Add(l); } double moyenne = sequenceBL.obtenirMoyenneClasse(cmbClasse.Text, cmbSequence.Text, annee); StatistiqueClasseBL statistiqueClasseBL = new StatistiqueClasseBL(); StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(cmbClasse.Text, annee, cmbSequence.Text); CreerEtat etat = new CreerEtat("recapitulatifNoteSequentiel-" + classe.codeClasse + "-" + sequence.codeseq, "Récapitulatif des notes de la " + sequence.nomseq); etat.recapitulatifNotes_new(recapitulatif_new, classe, stat, nomprof, codematieres, codesanctions, annee, moyenne); } }
/** * cette fonction permet de recencer pour une classe le professeur titulaire, l'effectif le taux de reussite * */ public Dictionary <string, string> syntheseClasse(string codeclasse, int annee, string periode) { Dictionary <string, string> result = new Dictionary <string, string>(); StatistiqueClasseBL statBL = new StatistiqueClasseBL(); StatistiqueClasseBE statBE = new StatistiqueClasseBE(); GestionRecapitulatifAnnuelBL recapAnnuel = new GestionRecapitulatifAnnuelBL(); GestionRecapitulatifSequentielBL recapSeq = new GestionRecapitulatifSequentielBL(); GestionRecapitulatifTrimestrielBL recapTrim = new GestionRecapitulatifTrimestrielBL(); List <string> sequences = listerValeurColonneSequence("codeseq"); List <string> trimestres = listerValeurColonneTrimestre("codetrimestre"); double moyenne = 0; string prof = ""; if (sequences.Contains(periode)) { moyenne = recapSeq.obtenirMoyenneClasse(codeclasse, periode, annee); prof = recapSeq.obtenirProfTitulaire(codeclasse, annee); statBE = statBL.getStatistiqueDuneSequence(codeclasse, annee, periode); } else if (trimestres.Contains(periode)) { moyenne = recapTrim.obtenirMoyenneClasse(codeclasse, periode, annee); prof = recapTrim.obtenirProfTitulaire(codeclasse, annee); statBE = statBL.getStatistiqueDunTrimestre(codeclasse, annee, periode); } else { moyenne = recapAnnuel.obtenirMoyenneClasse(codeclasse, annee); prof = recapAnnuel.obtenirProfTitulaire(codeclasse, annee); statBE = statBL.getStatistiqueDuneAnnee(codeclasse, annee); } result.Add("prof", prof); result.Add("effectif", statBE.effectif.ToString()); result.Add("moyenne", moyenne.ToString()); result.Add("taux", statBE.pourcentageAdmis.ToString()); return(result); }
private void cmdImprimer_Click(object sender, RoutedEventArgs e) { if (cmbClasse.Text != null && txtAnneeScolaire.Text != null) { CreerEtat etat = new CreerEtat("Resultats des matieres d'une classe", "Comparaison du travail des élèves par matière"); ClasseBE classe = new ClasseBE(); classe.codeClasse = cmbClasse.Text; classe = statistiqueBL.rechercherClasse(classe); Dictionary <string, string> stat1 = new Dictionary <string, string>(); stat1 = statistiqueBL.syntheseClasse(cmbClasse.Text, annee, cmbExamen.Text); etat.exportGraphesToPDF(gridChartColumn, gridChartLine, classe, annee, periode, stat1, listeSource); SequenceBE sequence = new SequenceBE(); sequence.codeseq = cmbExamen.Text; sequence = sequenceBL.rechercherSequence(sequence); string nomprof = ""; List <string> codematieres = new List <string>(); List <string> codesanctions = new List <string>(); eleves.Clear(); recapitulatif_new.Clear(); LigneRecapSeq ligne; eleves = sequenceBL.listeEleveDuneClasse(classe, annee); foreach (EleveBE eleve in eleves) { ligne = new LigneRecapSeq(); ligne = sequenceBL.recapitulatifSequentielEleve_new(eleve, classe.codeClasse, sequence.codeseq, annee); recapitulatif_new.Add(ligne); } nomprof = sequenceBL.obtenirProfTitulaire(classe.codeClasse, annee); codematieres = sequenceBL.listeCodeMatiereDuneClasse(classe.codeClasse, annee); codesanctions = disciplineBL.listerCodeDiscipline(); sequenceBL.journaliser("Impression du recapitulatif sequentiel de " + classe.codeClasse + " de la " + sequence.codeseq); // on tri la liste suivant le nom croissant avant d'imprimer List <LigneRecapSeq> tampon = recapitulatif_new.OrderBy(o => o.nom).ToList(); recapitulatif_new.Clear(); foreach (LigneRecapSeq l in tampon) { recapitulatif_new.Add(l); } double moyenne = sequenceBL.obtenirMoyenneClasse(cmbClasse.Text, cmbExamen.Text, annee); StatistiqueClasseBL statistiqueClasseBL = new StatistiqueClasseBL(); StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(cmbClasse.Text, annee, cmbExamen.Text); Synthese synthese = sequenceBL.obtenirSyntheseSequentielle(cmbClasse.Text, cmbExamen.Text, annee); etat = new CreerEtat("recapitulatifNoteSequentiel-" + classe.codeClasse + "-" + sequence.codeseq, "Récapitulatif des notes de la " + sequence.nomseq); etat.recapitulatifNotes_new(recapitulatif_new, classe, stat, nomprof, codematieres, codesanctions, annee, moyenne); etat = new CreerEtat("recapitulatifMoyenneSequentiel-" + classe.codeClasse + "-" + sequence.codeseq, "Récapitulatif des moyennes de la " + sequence.nomseq); etat.recapitulatifMoyenne(recapitulatif_new, classe, stat, nomprof, codesanctions, annee, moyenne); etat = new CreerEtat("recapitulatifClasseSequentiel-" + classe.codeClasse + "-" + sequence.codeseq, "Bilan de la " + sequence.nomseq); etat.synthese_resultat_sequentiel(classe, cmbExamen.Text, synthese); GenererEtatDesSanctionsDuneClasseBL genererEtatDesSanctionsDuneClasseBL = new GenererEtatDesSanctionsDuneClasseBL(); genererEtatDesSanctionsDuneClasseBL.genererEtatSanctionSequentielleDuneClasse(classe.codeClasse, sequence.codeseq, annee); etat = new CreerEtat("statistique-" + classe.codeClasse + "-" + sequence.codeseq, "Statistiques sur la " + sequence.nomseq); etat.etatPourcentageCumuleDeNotesParSequence(classe, sequence.codeseq, annee); etat = new CreerEtat("ConseilClasse-" + classe.codeClasse + "-" + sequence.codeseq, "Conseil de Classe de la " + sequence.nomseq); etat.etatConseilDeClasse(classe, sequence.codeseq, annee); } }
private void cmdValider_Click(object sender, RoutedEventArgs e) { //on vérifit si tous les champs ont été corectement rempli if ((cmbClasse.Text != null && cmbPeriode.Text != null && txtAnneeScolaire.Text != null) && (cmbClasse.Text != "" && cmbPeriode.Text != "" && txtAnneeScolaire.Text != "")) { classeChoisi = cmbClasse.Text; periodeChoisi = cmbChoixPeriode.Text; anneeScolaireChoisi = Convert.ToInt16(txtAnneeScolaire.Text); if (cmbPeriode.Text.Equals("Séquence")) { if (cmbChoixPeriode.Text != null && cmbChoixPeriode.Text != "") { // traitement pour une Séquence //--------------------- Action pour une Séquence particulière List <StatistiqueClasseBE> LStatistique = new List <StatistiqueClasseBE>(); if (cmbClasse.Text.Equals("<Toutes Les Classes>")) { List <ClasseBE> ListClasse = statistiqueClasseBL.listerToutesLesClasses(); int effectifTotal = 0; int nbAdmisTotal = 0; int nbEchecTotal = 0; for (int i = 0; i < ListClasse.Count; i++) { StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(ListClasse.ElementAt(i).codeClasse, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text); if (stat != null) { effectifTotal += stat.effectif; nbAdmisTotal += stat.nbAdmis; nbEchecTotal += stat.nbEchec; LStatistique.Add(stat); } } string pourcentageTotalAdmis = Convert.ToString(Math.Round((Convert.ToDecimal(nbAdmisTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%"; string pourcentageTotalEchec = Convert.ToString(Math.Round((Convert.ToDecimal(nbEchecTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%"; StatistiqueClasseBE stat2 = new StatistiqueClasseBE("TOTAL", effectifTotal, nbAdmisTotal, pourcentageTotalAdmis, nbEchecTotal, pourcentageTotalEchec); if (stat2 != null) { LStatistique.Add(stat2); } } else { //génération des statisques StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(cmbClasse.Text, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text); if (stat != null) { LStatistique.Add(stat); } } grdStatistiqueClasse.ItemsSource = LStatistique; } else { MessageBox.Show("Vous devez choisir une Séquence !"); } } else if (cmbPeriode.Text.Equals("Trimestre")) { if (cmbChoixPeriode.Text != null && cmbChoixPeriode.Text != "") { List <StatistiqueClasseBE> LStatistique = new List <StatistiqueClasseBE>(); if (cmbClasse.Text.Equals("<Toutes Les Classes>")) { List <ClasseBE> ListClasse = statistiqueClasseBL.listerToutesLesClasses(); int effectifTotal = 0; int nbAdmisTotal = 0; int nbEchecTotal = 0; for (int i = 0; i < ListClasse.Count; i++) { StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(ListClasse.ElementAt(i).codeClasse, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text); if (stat != null) { effectifTotal += stat.effectif; nbAdmisTotal += stat.nbAdmis; nbEchecTotal += stat.nbEchec; LStatistique.Add(stat); } } string pourcentageTotalAdmis = Convert.ToString(Math.Round((Convert.ToDecimal(nbAdmisTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%"; string pourcentageTotalEchec = Convert.ToString(Math.Round((Convert.ToDecimal(nbEchecTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%"; StatistiqueClasseBE stat2 = new StatistiqueClasseBE("TOTAL", effectifTotal, nbAdmisTotal, pourcentageTotalAdmis, nbEchecTotal, pourcentageTotalEchec); if (stat2 != null) { LStatistique.Add(stat2); } } else { //génération des statisques StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(cmbClasse.Text, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text); if (stat != null) { LStatistique.Add(stat); } } grdStatistiqueClasse.ItemsSource = LStatistique; } else { MessageBox.Show("Vous devez choisir un Trimestre !"); } } else { // traitement pour une année List <StatistiqueClasseBE> LStatistique = new List <StatistiqueClasseBE>(); if (cmbClasse.Text.Equals("<Toutes Les Classes>")) { List <ClasseBE> ListClasse = statistiqueClasseBL.listerToutesLesClasses(); int effectifTotal = 0; int nbAdmisTotal = 0; int nbEchecTotal = 0; for (int i = 0; i < ListClasse.Count; i++) { StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(ListClasse.ElementAt(i).codeClasse, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text); if (stat != null) { effectifTotal += stat.effectif; nbAdmisTotal += stat.nbAdmis; nbEchecTotal += stat.nbEchec; LStatistique.Add(stat); } } string pourcentageTotalAdmis = Convert.ToString(Math.Round((Convert.ToDecimal(nbAdmisTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%"; string pourcentageTotalEchec = Convert.ToString(Math.Round((Convert.ToDecimal(nbEchecTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%"; StatistiqueClasseBE stat2 = new StatistiqueClasseBE("TOTAL", effectifTotal, nbAdmisTotal, pourcentageTotalAdmis, nbEchecTotal, pourcentageTotalEchec); if (stat2 != null) { LStatistique.Add(stat2); } } else { //génération des statisques StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(cmbClasse.Text, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text); if (stat != null) { LStatistique.Add(stat); } } grdStatistiqueClasse.ItemsSource = LStatistique; } } else { MessageBox.Show("Tous les champs doivent êtres remplis !! "); } }