コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }