Rafraichissement de données en windows form

Résolu
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011 - 15 déc. 2010 à 10:10
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011 - 23 déc. 2010 à 11:12
Bonjour, me revoici pour ceux qui me connaissent (bientot tout le forum) lol

J'ai une nouvelle question concernant mon projet : et oui il n'est pas encore fini. Il me reste 2 mois de stage
alors autant prendre son temps afin qu'il soit le plus beau des gadgets (hi hi).

Alors ce widget m'affiche des données xml dans un datagridview, et ensuite un histogramme me compare les CA de chaque mois
pour deux années (année en cours et année précédente).
Etant donnée que les valeurs de mon XML varient ds le temps ( à chaque commande .... LOGIQUE !!!), ce que je souhaiterais faire
c'est un rafraichissement de l'histogramme.
Mais voilà, après avoir codé je me rends compte que lorsque le rafraichissement à lieu (timer), tout le style est remis en cause. Car en effet ayant choisit un affichage vertical du datgridview, au rafraichissement celui-ci redeviens horizontal, et c'est tout moche. Et mon histogramme ne se rafraichit pas du tout.

Je pense que la methode du timer est mal codé, ou alors pas placé au bonne endroit (je ne sais pas).
Ou peut etre dois je créer plusieurs timer. un pour l'histo et un autre pour le datagridview.
Je ne sais pas du tout. Voilà les questions que je me pose.

Donc si quelqu'un à un peu de patience je le remercie d'avance
A voir également:

90 réponses

ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
20 déc. 2010 à 15:47
HEY les gars j'ai un code comme ceci qui va chercher directement les infos sur le xml et ça marche

 private void CreerGraphique(ZedGraphControl zgc)
        {
            string filePath = "http://www..............";
            XmlTextReader txtReader = new XmlTextReader(filePath);
            statsdataset.Clear();

            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;

            dataGridView1.DataMember = "stat";

            double[] ca = new double[12];
            double[] precCa = new double[12];

            DataRow row = statsdataset.Tables["stat"].Rows[0];
            for (int i = 0; i < 12; i++)
            {
                ca[i] = Convert.ToDouble(row["ca_" + (i + 1).ToString()].ToString().Replace('.', ','));
                precCa[i] = Convert.ToDouble(row["ca_prec_" + (i + 1).ToString()].ToString().Replace('.', ','));
            }

            GraphPane myPane = zedGraphControl1.GraphPane;

            // titre et nomination des axes x et y
            myPane.Title.Text = "Histogramme";
            myPane.XAxis.Title.Text = "Mois de l'année";
            myPane.YAxis.Title.Text = "Chiffres d'Affaires";

            string[] str = { "Janv.", "Févr.", "Mars", "Avr.", "Mai", "Juin", "Juill.", 
                    "Août", "Sept.", "Oct.", "Nov.", "Dec." };

            // creation des batons
            BarItem myCurve = myPane.AddBar("Année " + (DateTime.Now.Year - 1).ToString(), null, ca, Color.Red);
            BarItem myCurve1 = myPane.AddBar("Année " + DateTime.Now.Year.ToString(), null, precCa, Color.Green);

            // Fill the axis background with a color gradient
            myPane.Chart.Fill = new Fill(Color.White,
               Color.FromArgb(255, 255, 166), 45.0F);

            zedGraphControl1.AxisChange();

            // expand the range of the Y axis slightly to accommodate the labels
            myPane.YAxis.Scale.Max += myPane.YAxis.Scale.MajorStep;

            // Create TextObj's to provide labels for each bar
            BarItem.CreateBarLabels(myPane, false, "f0");

            // dessine les nouvelles valeurs de X à la place des anciennes
            myPane.XAxis.MajorTic.IsBetweenLabels = true;
            // appel du nouvel affichage des abcisses
            myPane.XAxis.Scale.TextLabels = str;
            // Mis en place du nouveau texte des abcisses 
            myPane.XAxis.Type = ZedGraph.AxisType.Text;

            PointPairList hList = new PointPairList();
            myPane.XAxis.Type = ZedGraph.AxisType.Text;
            // une graduation en X est egal à 1 mois
            myPane.XAxis.Scale.MajorStep = 1;
            myPane.XAxis.Scale.MajorUnit = DateUnit.Month;
            // Renverser les labels des abcisses de 65°
            myPane.XAxis.Scale.FontSpec.Angle = 65;
            myPane.XAxis.Scale.FontSpec.IsBold = true;
            myPane.XAxis.Scale.FontSpec.Size = 12;
            myPane.XAxis.Scale.Format = "M";

            zedGraphControl1.Refresh();
        }
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 déc. 2010 à 16:48
Le projet pourrait être simple.
Si les données étaient bien formée comme indiqué au départ.
Si il y a possibilité de refaire tes données en entrée ca serait plus facile à lire pour tout le monde.


Après ton code de flip et compagnie tu peux le mettre à la poubelle ;-)

J'ai été un peu bourrin sur le code, plein de nouveauté de .Net4.
Mais il reste lisible.

Il faut que tu restructures un peu ton programme.

C'est pour ca que j'avais fait des méthodes

--> ReadData()
--> BindDataGrid()
--> DrawGraph()

Ca sera plus simple pour quelqu'un qui va reprendre ton code apres.

Et enlevé toutes les traces de constructions et mettre à jour les commentaires.
3
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
15 déc. 2010 à 10:33
Je vois pas trop où est le problème cette fois-ci:
- tu as un timer qui rafraîchi
- tu sais extraire les données de ton XML pour les mettre dans l'histo, avec le formatage voulu (j'ose espérer que tout peut être appelé par une seule fonction)
-> tu n'as plus qu'à faire le lien entre le timer et cette fonction

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
0
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 10:38
salut buno

le refresh marche mais le problème est que l'affichage redeviens à l'état initial.....
Je veux que le style que je lui ai appliqué reste tel quel
a savoir l'affichage vertical, la couleur de certaine cellule, la suppression de certaine cellule (qui revienne au moment du refresh).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 10:39
l'affichage du datagrid view qui change ( oublié de préciser )
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
15 déc. 2010 à 10:40
il faut donc rafraîchir également le formatage

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
0
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 10:43
hein !!! quand tu parles de formatage, c'est le "style" que j'ai appliqué que tu veux dire ????
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
15 déc. 2010 à 10:44
Oui

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
0
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 10:47
ok ok vais essayé alors

Merci buno
0
Shaolyne Messages postés 155 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 8 mars 2011 1
15 déc. 2010 à 11:19
Le formatage conditionnel devrait être appliqué de manière permanente étant donné que tu utilises la même datagridview mais change uniquement sa source de données.
Où déclares-tu ton formatage conditionnel?

N'oublies pas d'appeler la méthode refresh permettant d'actualiser ton affichage (valeur + formatage) après avoir assigné ton DataSource.
Tu as quelque chose comme ceci:
dataGridView1.DataSource = list;
dataGridView1.Refresh();

Shao.
0
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 11:33
Salut SHAO !!!
ça faisait longtemps......

Je declare mon formatage dans le form_load....
J'écris d'abord la methode du timer en dessous de mon form et ensuite je renvois le code suivant dans le form_load

Timer TimerStats = new Timer();
TimerStats.Interval = 1000;
TimerStats.Tick += TimerStats_Tick;
TimerStats.Start();
0
Shaolyne Messages postés 155 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 8 mars 2011 1
15 déc. 2010 à 11:42
Ok. Il ne faut donc pas le "refaire" à chaque modification des données.
Il te suffit d'appeler le refresh dans l'évènement tick de ton timer, juste après la modification de la propriété DataSource.

Shao.
0
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 11:46
ok je vois j'essaye et je te redis

encor merci
0
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 12:10
Et ben le problème est toujours le meme ou alors c'est moi qui n'est pas compris
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
15 déc. 2010 à 12:12
Fais voir ton code...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
0
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 12:15
tu veux le code entier de tout le gadget ????
0
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 12:29
namespace widget
{
    public partial class Form1 : Form
    {
        DataSet ds = null;
        DataTable dt = null;

        int tickStart = 0;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string filePath = "http://www.beautefrance.com:8080/script/widget_statsvente.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);

            statsdataset.Clear();
            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;
            
            dataGridView1.DataMember = "stat";

            // rendre invisibles les colonnes suivantes
            
            dataGridView1.Columns["ca_1"].Visible = false;
            dataGridView1.Columns["ca_2"].Visible = false;
            dataGridView1.Columns["ca_3"].Visible = false;
            dataGridView1.Columns["ca_4"].Visible = false;
            dataGridView1.Columns["ca_5"].Visible = false;
            dataGridView1.Columns["ca_6"].Visible = false;
            dataGridView1.Columns["ca_7"].Visible = false;
            dataGridView1.Columns["ca_8"].Visible = false;
            dataGridView1.Columns["ca_9"].Visible = false;
            dataGridView1.Columns["ca_10"].Visible = false;
            dataGridView1.Columns["ca_11"].Visible = false;
            dataGridView1.Columns["ca_12"].Visible = false;
            dataGridView1.Columns["ca_prec"].Visible = false;
            dataGridView1.Columns["ca_prec_1"].Visible = false;
            dataGridView1.Columns["ca_prec_2"].Visible = false;
            dataGridView1.Columns["ca_prec_3"].Visible = false;
            dataGridView1.Columns["ca_prec_4"].Visible = false;
            dataGridView1.Columns["ca_prec_5"].Visible = false;
            dataGridView1.Columns["ca_prec_6"].Visible = false;
            dataGridView1.Columns["ca_prec_7"].Visible = false;
            dataGridView1.Columns["ca_prec_8"].Visible = false;
            dataGridView1.Columns["ca_prec_9"].Visible = false;
            dataGridView1.Columns["ca_prec_10"].Visible = false;
            dataGridView1.Columns["ca_prec_11"].Visible = false;
            dataGridView1.Columns["ca_prec_12"].Visible = false;

            // suppression de la colonne vide de gauche; 
            dataGridView1.RowHeadersVisible = false;

            // initialisation de la couleur du bouton, au chargement
            btn_stats.BackColor = Color.LightSkyBlue;

            // modif des titres
            dataGridView1.Columns["ca"].HeaderText = "Chiffre d'Affaires";
            dataGridView1.Columns["nb_cmd"].HeaderText = "Nombre de Commandes";
            dataGridView1.Columns["ca_mois"].HeaderText = "CA / Mois";
            dataGridView1.Columns["ca_moyenne_jour"].HeaderText = "CA Moyen / Jour";
            dataGridView1.Columns["prix_moyen_cmd"].HeaderText = "Prix Moyen Commande";
            dataGridView1.Columns["prix_moyen_produit"].HeaderText = "Prix Moyen Produit";

            // Mise en italique des valeurs
            dataGridView1.Columns[1].DefaultCellStyle.Font = new Font(Control.DefaultFont, FontStyle.Italic);

            // Couleur de separation des cellules
            dataGridView1.GridColor = Color.White;

            // on enleve le focus de selection
            this.dataGridView1.Rows[0].Selected = false;

            // Suppression des rangées d'entete
            dataGridView1.ColumnHeadersVisible = true;

             // appel des methodes de l'affichage vertical
            ds = new DataSet();
            dt = new DataTable();

            dt = GetStats();
            ds.Tables.Add(dt);

            DataView my_DataView = ds.Tables[0].DefaultView;
            this.dataGridView1.DataSource = my_DataView;

            DataSet new_ds = FlipDataSet(ds);
            my_DataView = new_ds.Tables[0].DefaultView;
            this.dataGridView1.DataSource = my_DataView;

            //retourne le Graphique au chargement du widget
            CreerGraphique(zedGraphControl1);
            
            //rafraichissement de l'histogramme
            timer1.Interval = 50;
            timer1.Enabled = true;
            timer1.Start();

            tickStart = Environment.TickCount;

        } 

         // bouton "page 1" du datagridV.
        private void btn_stats_Click(object sender, EventArgs e)
        {
            string filePath = "http://www.beautefrance.com:8080/script/widget_statsvente.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);

            statsdataset.Clear();
            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;
            
            dataGridView1.DataMember = "stat";

            // rendre invisibles les colonnes suivantes
            
            dataGridView1.Columns["ca_1"].Visible = false;
            dataGridView1.Columns["ca_2"].Visible = false;
            dataGridView1.Columns["ca_3"].Visible = false;
            dataGridView1.Columns["ca_4"].Visible = false;
            dataGridView1.Columns["ca_5"].Visible = false;
            dataGridView1.Columns["ca_6"].Visible = false;
            dataGridView1.Columns["ca_7"].Visible = false;
            dataGridView1.Columns["ca_8"].Visible = false;
            dataGridView1.Columns["ca_9"].Visible = false;
            dataGridView1.Columns["ca_10"].Visible = false;
            dataGridView1.Columns["ca_11"].Visible = false;
            dataGridView1.Columns["ca_12"].Visible = false;
            dataGridView1.Columns["ca_prec"].Visible = false;
            dataGridView1.Columns["ca_prec_1"].Visible = false;
            dataGridView1.Columns["ca_prec_2"].Visible = false;
            dataGridView1.Columns["ca_prec_3"].Visible = false;
            dataGridView1.Columns["ca_prec_4"].Visible = false;
            dataGridView1.Columns["ca_prec_5"].Visible = false;
            dataGridView1.Columns["ca_prec_6"].Visible = false;
            dataGridView1.Columns["ca_prec_7"].Visible = false;
            dataGridView1.Columns["ca_prec_8"].Visible = false;
            dataGridView1.Columns["ca_prec_9"].Visible = false;
            dataGridView1.Columns["ca_prec_10"].Visible = false;
            dataGridView1.Columns["ca_prec_11"].Visible = false;
            dataGridView1.Columns["ca_prec_12"].Visible = false;

            // suppression de la colonne vide de gauche; 
            dataGridView1.RowHeadersVisible = false;

            // couleur des boutons lors de la pression
            btn_stats.BackColor = Color.LightSkyBlue;
            btn_comm.BackColor = Color.LightGray;

            // modif des titres
            dataGridView1.Columns["ca"].HeaderText = "Chiffres d'Affaires";
            dataGridView1.Columns["nb_cmd"].HeaderText = "Nombres de Commandes";
            dataGridView1.Columns["ca_mois"].HeaderText = "CA / Mois";
            dataGridView1.Columns["ca_moyenne_jour"].HeaderText = "CA Moyen / Jour";
            dataGridView1.Columns["prix_moyen_cmd"].HeaderText = "Prix Moyen Commande";
            dataGridView1.Columns["prix_moyen_produit"].HeaderText = "Prix Moyen Produit";  
         
            // Mise en italique des valeurs
            dataGridView1.Columns[1].DefaultCellStyle.Font = new Font(Control.DefaultFont, FontStyle.Italic);

            // Couleur de separation des cellules
            dataGridView1.GridColor = Color.White;

            // on enleve le focus de selection
            this.dataGridView1.Rows[0].Selected = false;

            // Suppression des rangées d'entete
            dataGridView1.ColumnHeadersVisible = true;

             // appel des methodes de l'affichage vertical
            ds = new DataSet();
            dt = new DataTable();

            dt = GetStats();
            ds.Tables.Add(dt);

            DataView my_DataView = ds.Tables[0].DefaultView;
            this.dataGridView1.DataSource = my_DataView;

            DataSet new_ds = FlipDataSet(ds);
            my_DataView = new_ds.Tables[0].DefaultView;
            this.dataGridView1.DataSource = my_DataView;

           
        }

        // BOUTON "PAGE 2" du datagridV.
        private void btn_comm_Click(object sender, EventArgs e)
        {
            string filePath = "http://www.beautefrance.com:8080/script/widget_cmdjour.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);

            comsdataset.Clear();
            comsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = comsdataset;
            
            dataGridView1.DataMember = "commande";

            dataGridView1.Columns["id"].Visible = false;
            dataGridView1.Columns["statut"].Visible = false;

            // renommination des titres
            dataGridView1.Columns["date_com"].HeaderText = "DATE DE COMMANDE";
            dataGridView1.Columns["total"].HeaderText = "TOTAL";
            dataGridView1.Columns["type_paiement"].HeaderText = "PAIEMENT";

            // redimensionnement des colonnes par rapport a la largeur du widget
            dataGridView1.Columns[1].Width = 85;
            dataGridView1.Columns[3].Width = 70;
            dataGridView1.Columns[4].Width = 54;

            // couleur des boutons lors de la pression
            btn_comm.BackColor = Color.LightSkyBlue;
            btn_stats.BackColor = Color.LightGray;

            dataGridView1.ColumnHeadersVisible = true;

            // appel de la methode cellFormating de la page 2 pour la colorisation des cellules
            dataGridView1.CellFormatting += dataGridView1_CellFormatting;                       
        }

        // couleur de cellules 
        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (dataGridView1.Columns[e.ColumnIndex].Name == "date_com")
            {
                //Vérification de la valeur dans la colonne Statut
                if ((String)dataGridView1.Rows[e.RowIndex].Cells["statut"].Value == "1")
                {
                    e.CellStyle.BackColor = Color.LightGreen;
                }
                else
                {
                    e.CellStyle.BackColor = Color.Purple;
                }
            }
        }

        private static DataTable GetStats()
        {
            //Initialisation de notre dataTable afin d'inverser
            DataTable table = new DataTable();
            table.TableName = "stats";

            table.Columns.Add("ca", typeof(string));
            table.Columns.Add("prix_moyen_produit", typeof(string));
            table.Columns.Add("prix_moyen_cmd", typeof(string));
            table.Columns.Add("ca_moyenne_jour", typeof(string));
            table.Columns.Add("ca_mois", typeof(string));
            table.Columns.Add("nb_cmd", typeof(string));

            table.Rows.Add(new object[] { "295092.46", "16.08", "36.77", "957.47", "23936.63", "651" });
            table.AcceptChanges();
            return table;            
        }


        public DataSet FlipDataSet(DataSet my_DataSet)
        {
            // methode qui inverse notre dataTable
            DataSet ds = new DataSet();

            foreach (DataTable dt in my_DataSet.Tables)
            {
                DataTable table = new DataTable();

                for (int i = 0; i <= dt.Rows.Count; i++)
                { table.Columns.Add(Convert.ToString(i)); }

                DataRow r;
                for (int k = 0; k < dt.Columns.Count; k++)
                {
                    r = table.NewRow();
                    r[0] = dt.Columns[k].ToString();
                    for (int j = 1; j <= dt.Rows.Count; j++)
                    { r[j] = dt.Rows[j - 1][k]; }
                    table.Rows.Add(r);
                }
                ds.Tables.Add(table); 
            }

            return ds;
        }
         
        private void zedGraphControl1_Load(object sender, EventArgs e)
        {
            CreerGraphique(zedGraphControl1);
        }

        private void CreerGraphique(ZedGraphControl zgc)
        {
            string filePath = "http://www.beautefrance.com:8080/script/widget_statsvente.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);

            statsdataset.Clear();
            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;
            
            dataGridView1.DataMember = "stat";


            GraphPane myPane = zgc.GraphPane;

            // titre et nomination des axes x et y
            myPane.Title.Text = "Histogramme";
            myPane.XAxis.Title.Text = "Mois de l'année";
            myPane.YAxis.Title.Text = "Chiffres d'Affaires";

            // Points de données
            double[] y0 = { 19827.12, 14928.46, 25272.96, 19623.87, 21904.70, 21048.11, 22198.30, 
                              23601.44, 25253.49, 24434.42, 25627.56, 22124.15 };
            double[] y1 = { 28275.62, 24057.57, 30730.60, 25599.90, 23995.63, 25427.58, 26232.15, 
                              29093.91, 29657.87, 28085.00, 28692.82, 3668.93 };
            string[] str = { "Janv.", "Févr.", "Mars", "Avr.", "Mai", "Juin", "Juill.", 
                                "Août", "Sept.", "Oct.", "Nov.", "Dec." };
            

            // creation des batons
            BarItem myCurve = myPane.AddBar("Année 2009", null, y0, Color.Red);
            BarItem myCurve1 = myPane.AddBar("Année 2010", null, y1, Color.Green);

            
            // Fill the axis background with a color gradient
            myPane.Chart.Fill = new Fill(Color.White,
               Color.FromArgb(255, 255, 166), 45.0F);

            zgc.AxisChange();

            // expand the range of the Y axis slightly to accommodate the labels
            myPane.YAxis.Scale.Max += myPane.YAxis.Scale.MajorStep;

            // Create TextObj's to provide labels for each bar
            BarItem.CreateBarLabels(myPane, false, "f0");

            // dessine les nouvelles valeurs de X à la place des anciennes
            myPane.XAxis.MajorTic.IsBetweenLabels = true;
            // appel du nouvel affichage des abcisses
            myPane.XAxis.Scale.TextLabels = str;
            // Mis en place du nouveau texte des abcisses 
            myPane.XAxis.Type = ZedGraph.AxisType.Text;

            PointPairList hList = new PointPairList();
            myPane.XAxis.Type = ZedGraph.AxisType.Text;
            // une graduation en X est egal à 1 mois
            myPane.XAxis.Scale.MajorStep = 1;
            myPane.XAxis.Scale.MajorUnit = DateUnit.Month;
            // Renverser les labels des abcisses de 65°
            myPane.XAxis.Scale.FontSpec.Angle = 65;
            myPane.XAxis.Scale.FontSpec.IsBold = true;
            myPane.XAxis.Scale.FontSpec.Size = 12;
            myPane.XAxis.Scale.Format = "M";

        }

        private void Form1_Resize(object sender, EventArgs e)
        {
            SetSize();
        }
        private void SetSize()
        {
            // permet de laisser une marge de 10 pixels tout autour du graphique
            zedGraphControl1.Location = new Point(10, 10);
            zedGraphControl1.Size = new Size(ClientRectangle.Width - 20, ClientRectangle.Height - 20);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            string filePath = "http://www.beautefrance.com:8080/script/widget_statsvente.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);

            statsdataset.Clear();
            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;
            zedGraphControl1.Refresh();
            dataGridView1.DataMember = "stat";

            if (zedGraphControl1.GraphPane.CurveList.Count <= 0)
                return;

            LineItem curve = zedGraphControl1.GraphPane.CurveList[0] as LineItem;
            if (curve == null)
                return;

            IPointListEdit list = curve.Points as IPointListEdit;
          
            if (list == null)
                return;

            double time = (Environment.TickCount - tickStart) / 1000.0;

            // 3 secondes par cycle
            list.Add(time, Math.Sin(2.0 * Math.PI * time / 3.0));

            Scale xScale = zedGraphControl1.GraphPane.XAxis.Scale;
            if (time > xScale.Max - xScale.MajorStep)
            {
                xScale.Max = time + xScale.MajorStep;
                xScale.Min = xScale.Max - 30.0;
            }

            zedGraphControl1.AxisChange();
            // forcer le redessinage du graphe
            zedGraphControl1.Invalidate();
           
        }
    }
}

0
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 12:29
Ben bon courage quoi !!!!!
0
ismalife Messages postés 193 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 11 janvier 2011
15 déc. 2010 à 13:52
On dirait que mon code fait peur
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
15 déc. 2010 à 13:57
Que nenni...mais je viens de rentrer
Je regarde ça de plus près

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
0
Rejoignez-nous