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(); }
public double PerCapita(ValeurMetrique valeurMetrique) { if (valeurMetrique.Absolu) { return(valeurMetrique.Valeur); } else { return(valeurMetrique.Valeur / (double)AnimateurActif.Valeur); } }
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); }
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"); } }