Bonjour

J'ai des données que je sors depuis SQL, par exemple :

MACHINE DescriptionMachine ETAT_TRS ETAT SOUS_ETAT TIMESTAMP TotalDureeHeures Ligne IDLot PosteDeTravail DescriptionPosteDeTravail
600068 Exemple 2.1 Arrêt Attente intervention 2016-03-31 00:00:00.000 12.853333 test 1 test 2 t est test

j'aimerais faire un graphe de type stackcolumn, par jour (un stack column par jour) et par type (qu'il m'ajoute une couleur par t'ype D'ETAT TRS)

Si vous pouvez m'aider, j'ai déjà pondu un bout de code mais j'y arrive pas

Merci

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
double yvalue = 0;
 
            DateTime dtCourante;
 
            dtCourante = Convert.ToDateTime(dtpDebut.Value.Year + "-" + dtpDebut.Value.Month + "-" + dtpDebut.Value.Day);
 
            chrTRS.ChartAreas.Clear();
            chrTRS.ChartAreas.Add("ChartArea1");
            chrTRS.Series.Clear();
            //chrTRS.ChartAreas["ChartArea1"].AxisX.Title = "Date";
            //chrTRS.ChartAreas["ChartArea1"].AxisY.Title = "Répartition durée";
 
            DataView dv = dtDatas.DefaultView;
            dv.Sort = "TIMESTAMP, ETAT_TRS";
 
            strEtatMemo = "";
 
            do
            {
                yvalue = 0;
 
                for (int i = 0; i < dv.Count; i++)
                {
                    dtTimeStamp = Convert.ToDateTime(Convert.ToDateTime(dv[i]["TIMESTAMP"]).Year + "-" + Convert.ToDateTime(dv[i]["TIMESTAMP"]).Month + "-" + Convert.ToDateTime(dv[i]["TIMESTAMP"]).Day);
 
                    if (dtTimeStamp == dtCourante)
                    {
                        //MessageBox.Show(dtTimeStamp.ToString());
 
                        if (chrTRS.Series.IndexOf(dv[i]["SOUS_ETAT"].ToString().Trim()) == -1)
                        //if (chrTRS.Series.IndexOf(strEtatMemo) == -1)
                        {
                            chrTRS.Series.Add(dv[i]["SOUS_ETAT"].ToString().Trim());
                            //chrTRS.Series[dv[i]["SOUS_ETAT"].ToString().Trim()]["StackedGroupName"] = "Group1";
                            chrTRS.Series[dv[i]["SOUS_ETAT"].ToString().Trim()].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn;
                            yvalue = 0;
                        }
 
                        if (strEtatMemo != dv[i]["SOUS_ETAT"].ToString().Trim() && strEtatMemo != "")
                        {
                            chrTRS.Series[strEtatMemo].Points.AddXY(dtCourante.ToShortDateString(), yvalue);
                            //MessageBox.Show(dtCourante + " " + yvalue + " " + strEtatMemo);
                            yvalue = 0;
                        }
 
                        yvalue = yvalue + Convert.ToDouble(dv[i]["TotalDureeHeures"].ToString());
 
                        strEtatMemo = dv[i]["SOUS_ETAT"].ToString().Trim();
                    }
                }
 
                if (yvalue != 0)
                {
                    chrTRS.Series[strEtatMemo].Points.AddXY(dtCourante.ToShortDateString(), yvalue);
                    //MessageBox.Show(dtCourante + " " + yvalue + " " + strEtatMemo);
                    yvalue = 0;
                }
 
                dtCourante = dtCourante.AddDays(1);
            }
            while (dtCourante <= dtpFin.Value);
            //chrTRS.Series.Add("sam");
            //chrTRS.Series["sam"].Points.AddXY("Test", 10);
            chrTRS.DataBind();
            //MessageBox.Show(dv.Count.ToString());
Dedans j'ai 2 composants de type date (pour choisir un jour dans le calendrier) et si je choisis qu'aujourd'hui je veux un stack colum des états d'aujourd'hui et si je mets hier et aujourd'hui je veux 2 stack column avec la date en dessous.

Actuellement j'ai des symptômes étranges ... Par exemple si dans mes DateTimePicker je sélectionne que aujourd'hui tout est jaune (machine éteinte dans la légende) et avec la date d'aujourd'hui sur l'axe X mais si dans mes datetimepicker je mets 04 avril en début et 05 avril en fin j'ai des données qui sembles correctes pour 05.04.2016, mais rien en 04.06.2016... Si je mets du 03.04.2016 au 05.03.2016 en X je me retrouve avec 2 stackcolum en date du 05.04.2016 j'ai des trucs étranges et je sais pas comment faire mon graphe correctement et propre. merci.