Bonjour à tous,
je me replonge dans les MSCharts en je suis confronté à un problème que je n'arrive pas à résoudre.
Je souhaite afficher des graph contenant deux séries.
Ces séries sont basées sur deux List<Demande> :
- le première contient 100 éléments
- le seconde en contient 50.
--> en somme, la première liste contient une série de demande et la seconde ne contient que les demandes réalisées.
Je veux afficher des stats sur mes demandes en effectuant des regroupements sur leurs divers attributs (Service, Mois, Année, etc.)
Pour le moment, je procède ainsi :
Cela fonctionne bien si les deux séries contiennent le même nombre de clé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Series Contrats = ChartContrat.Series.Add("Demandes Effectuées"); Contrats.ChartType = SeriesChartType.Bar; IEnumerable<IGrouping<string, Demande>> DemandesC = lstDemandes.OrderBy(q => q.Contrat).GroupBy(q => q.Contrat); foreach (IGrouping<string, Demandes> item in DemandesC) { Contrats.Points.Add(new DataPoint() { Label = item.Count().ToString(), YValues = new Double[] { item.Count() }, AxisLabel = item.Key }); } Series ContratsR = ChartContrat.Series.Add("Demandes réalisées"); ContratsR.ChartType = SeriesChartType.Bar; IEnumerable<IGrouping<string, Demandes>> DemandesR = LstDemandesRealisees.OrderBy(q => q.Contrat).GroupBy(q => q.Contrat); foreach (IGrouping<string, Demandes> item in DemandesR) { ContratsR.Points.Add(new DataPoint() { Label = item.Count().ToString(), YValues = new Double[] { item.Count() }, AxisLabel = item.Key.ToString() }); } ChartContrat.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true; ChartContrat.ChartAreas["ChartArea1"].AxisX.LabelStyle.Interval = 1;
Si, par contre, aucune demande n'a été réalisée sur un contrat qui comporte des demandes, la seconde série se trouve décalée par rapport à la première, rendant ainsi le graph erroné.
J'ai cherché comment je pouvais forcer la cohérence entre les deux séries mais là, je suis bloqué.
Si vous avez des idées, je suis preneur
D'avance merci
Partager