private void UpdateGroupeInfo()
        {
            StringBuilder txtGroupeDetail = new StringBuilder();

            try
            {
                MetriqueGroupe metrique       = metriquedesgroupes[GetSelectedGroupe()];
                PropertyInfo[] fieldsMetrique = metrique.GetType().GetProperties();
                foreach (PropertyInfo fieldMetrique in fieldsMetrique)
                {
                    if (fieldMetrique.PropertyType == typeof(ValeurMetrique) ||
                        fieldMetrique.PropertyType == typeof(ValeurMetriqueAbsolu))
                    {
                        ValeurMetrique fieldValue = (ValeurMetrique)fieldMetrique.GetValue(metrique);
                        txtGroupeDetail.Append(fieldValue.Nom + ": " + fieldValue.Valeur + " (" + fieldValue.Rang + " e)\n");
                    }
                    else
                    {
                        continue;
                    }
                }
            }
            catch (KeyNotFoundException)
            {
                txtGroupeDetail.Append("Pas de groupe sélectionné");
            }

            GroupeInfo.Text = txtGroupeDetail.ToString();
        }
示例#2
0
 public double PerCapita(ValeurMetrique valeurMetrique)
 {
     if (valeurMetrique.Absolu)
     {
         return(valeurMetrique.Valeur);
     }
     else
     {
         return(valeurMetrique.Valeur / (double)AnimateurActif.Valeur);
     }
 }
示例#3
0
        public MetriqueGroupe(IdentifiantGroupe groupe, List <KeyValuePair <string, Membre> > membres)
        {
            AnimateurActif         = new ValeurMetriqueAbsolu("Animateurs Actifs", true);
            MultiplePosteSup       = new ValeurMetrique("Membres avec plusieurs postes de supervision");
            MultiplePoste          = new ValeurMetrique("Membres avec plusieurs postes");
            VAJIncomplete          = new ValeurMetrique("VAJ incomplète");
            PJIncomplete           = new ValeurMetrique("Priorité Jeunesse incomplète");
            CCIncomplete           = new ValeurMetrique("Code de conduite incomplet");
            Secouriste             = new ValeurMetrique("Secouriste", false, true);
            ActiviteHiver          = new ValeurMetrique("Activité Hiver", false, true);
            HiverLourd             = new ValeurMetrique("Camping Hiver lourd", false, true);
            HiverLeger             = new ValeurMetrique("Camping Hiver léger", false, true);
            Gilwell                = new ValeurMetrique("Noeud de Gilwell", false, true);
            Grege                  = new ValeurMetrique("Foulard Grège", false, true);
            BadgeBois              = new ValeurMetrique("Badge de bois", false, true);
            CabestanBleu           = new ValeurMetrique("Cabestan Bleu", false, true);
            CabestanVert           = new ValeurMetrique("Cabestan Vert", false, true);
            CabestanViolet         = new ValeurMetrique("Cabestan Violet", false, true);
            FormationBaseCompletee = new ValeurMetrique("Formation de base complétées", false, true);

            EvaluerGroupe(groupe, membres);
        }
示例#4
0
        public void Exporter(string file)
        {
            Excel.Application oXL;
            Excel._Workbook   oWB;
            Excel._Worksheet  oSheet;

            try
            {
                //Start Excel and get Application object.
                oXL = new Excel.Application
                {
                    Visible = true
                };

                //Get a new workbook.
                oWB    = oXL.Workbooks.Add(Missing.Value);
                oSheet = (Excel._Worksheet)oWB.ActiveSheet;

                int propTitreCount = typeof(MetriqueGroupe).GetProperties().Count();
                int cellColumn     = 1;
                foreach (PropertyInfo prop in typeof(MetriqueGroupe).GetProperties().OrderBy(x => x.Name))
                {
                    if (prop.PropertyType == typeof(IdentifiantGroupe))
                    {
                        oSheet.Cells[1, cellColumn] = "GroupeName";
                        cellColumn++;
                        oSheet.Cells[1, cellColumn] = "GroupeId";
                    }
                    else if (prop.PropertyType == typeof(ValeurMetriqueAbsolu))
                    {
                        string baseName = prop.Name;
                        oSheet.Cells[1, cellColumn] = baseName + "Valeur";
                        cellColumn++;
                        oSheet.Cells[1, cellColumn] = baseName + "Rang";
                    }
                    else if (prop.PropertyType == typeof(ValeurMetrique))
                    {
                        string baseName = prop.Name;
                        oSheet.Cells[1, cellColumn] = baseName + "Valeur";
                        cellColumn++;
                        oSheet.Cells[1, cellColumn] = baseName + "Rang";
                        cellColumn++;
                        oSheet.Cells[1, cellColumn] = baseName + "ValeurPerCapita";
                        cellColumn++;
                        oSheet.Cells[1, cellColumn] = baseName + "RangPerCapita";
                    }
                    cellColumn++;
                }
                oSheet.get_Range("A1", "AZ1").Font.Bold         = true;
                oSheet.get_Range("A1", "AZ1").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;

                int propCount = typeof(MetriqueGroupe).GetProperties().Count();
                var cellRow   = 2;
                foreach (MetriqueGroupe metGroupe in Values)
                {
                    if (metGroupe.AnimateurActif.Valeur <= 0)
                    {
                        continue;
                    }

                    cellColumn = 1;
                    foreach (PropertyInfo prop in metGroupe.GetType().GetProperties().OrderBy(x => x.Name))
                    {
                        if (prop.PropertyType == typeof(IdentifiantGroupe))
                        {
                            IdentifiantGroupe idGroupe = (IdentifiantGroupe)prop.GetValue(metGroupe);
                            oSheet.Cells[cellRow, cellColumn] = idGroupe.Name;
                            cellColumn++;
                            oSheet.Cells[cellRow, cellColumn] = idGroupe.Value;
                            cellColumn++;
                        }
                        else if (prop.PropertyType == typeof(ValeurMetriqueAbsolu))
                        {
                            ValeurMetrique valMetrique = (ValeurMetrique)prop.GetValue(metGroupe);
                            oSheet.Cells[cellRow, cellColumn] = valMetrique.Valeur;
                            cellColumn++;
                            oSheet.Cells[cellRow, cellColumn] = valMetrique.Rang;
                            cellColumn++;
                        }
                        else if (prop.PropertyType == typeof(ValeurMetrique))
                        {
                            ValeurMetrique valMetrique = (ValeurMetrique)prop.GetValue(metGroupe);
                            oSheet.Cells[cellRow, cellColumn] = valMetrique.Valeur;
                            cellColumn++;
                            oSheet.Cells[cellRow, cellColumn] = valMetrique.Rang;
                            cellColumn++;
                            oSheet.Cells[cellRow, cellColumn] = metGroupe.PerCapita(valMetrique).ToString("P0");
                            cellColumn++;
                            oSheet.Cells[cellRow, cellColumn] = valMetrique.RangPerCapita;
                            cellColumn++;
                        }
                    }
                    cellRow++;
                }

                oSheet.get_Range("A1", "AZ1").EntireColumn.AutoFit();

                oWB.SaveAs(file,
                           Excel.XlFileFormat.xlOpenXMLWorkbook, Missing.Value, Missing.Value,
                           false, false, Excel.XlSaveAsAccessMode.xlNoChange,
                           Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

                oXL.Visible     = true;
                oXL.UserControl = true;
            }
            catch (Exception theException)
            {
                string errorMessage;
                errorMessage = "Error: ";
                errorMessage = string.Concat(errorMessage, theException.Message);
                errorMessage = string.Concat(errorMessage, " Line: ");
                errorMessage = string.Concat(errorMessage, theException.Source);

                MessageBox.Show(errorMessage, "Error");
            }
        }