CRÉATION D'UN GRAPHIQUE À PARTIR D'UNE DATAGRID

garcimor80 Messages postés 2 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 12 juillet 2006 - 12 juil. 2006 à 09:20
babina11 Messages postés 6 Date d'inscription dimanche 11 mars 2012 Statut Membre Dernière intervention 22 juin 2012 - 22 juin 2012 à 01:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33705-creation-d-un-graphique-a-partir-d-une-datagrid

babina11 Messages postés 6 Date d'inscription dimanche 11 mars 2012 Statut Membre Dernière intervention 22 juin 2012
22 juin 2012 à 01:35
bonsoir ,j'ai un petit probleme au niveau de l'importation des donnees de datagrid dans un graph.
mon prob est que dans la ligne dé (y) je doit avoir (l'annee),par exemple 2012,alors que lors de l’exécution je trouve 2000(j'ai b1 verifier avec ma base mé tt é juste)
et a la ligne d (x) une valeur calculé (vm),voici mon code et j'aime bien que vous pouvez m'aider:
Imports MySql.Data.MySqlClient
Imports MySql.Data
Imports System.Windows.Forms.DataVisualization.Charting

Public Class vmpararticle
Dim ds As DataSet = New DataSet()
Dim da As MySqlDataAdapter = New MySqlDataAdapter()
Dim con As MySqlConnection = New MySqlConnection("Data Source=localhost;Database=pfe;User ID=root;Password=root;")

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If TextBox1.Text "" Or TextBox2.Text "" Or TextBox3.Text = "" Then
MsgBox("vérifier vos parapetres")
Else
Dim con As MySqlConnection = New MySqlConnection("Data Source=localhost;Database=pfe;User ID=root;Password=root;")
Dim sql As MySqlCommand = New MySqlCommand("SELECT wo_part,sum(wo_qty_rjct)as quantite,sum(wo_qty_rjct*wo_yield_pct )as vm,year(wo_ord_date)as annee from wo_mstr where wo_ord_date<wo_due_date and wo_part like'%" + TextBox1.Text + "%' and wo_mstr.wo_status='" + TextBox3.Text + "' and year(wo_mstr.wo_ord_date)='" + TextBox2.Text + "'group by wo_part", con)
Dim dt As New DataTable
Dim ds As DataSet = New DataSet()

Dim DataAdapter1 As MySqlDataAdapter = New MySqlDataAdapter()

con.Open()

DataAdapter1.SelectCommand = sql

DataAdapter1.Fill(ds, "Product")

DataGridView2.DataSource = ds

DataGridView2.DataMember = "Product"
End If
End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text "" Or TextBox2.Text "" Or TextBox3.Text = "" Then
MsgBox("vérifier vos parapetres svp")
Else
Dim ChartArea1 As ChartArea = New ChartArea() ' Créer ChartArea (zone graphique)
Dim Legend1 As New Legend() ' Créer legende
Dim series1 As New Series() 'Créer data serie (qui contiendront les DataPoint)
Dim chart1 = New Chart 'Créer un Chart

Dim annee As Integer
annee = 2012

Dim conn As MySqlConnection
conn = New MySqlConnection()
conn.ConnectionString = "Data Source=localhost;Database=pfe;User ID=root;Password=root;"

Dim sqlProducts As String = "SELECT wo_part,sum(wo_qty_rjct)as quantite,sum(wo_qty_rjct*wo_yield_pct )as vm,year(wo_ord_date)as annee from wo_mstr where wo_ord_date<wo_due_date and wo_part like'%" + TextBox1.Text + "%' and wo_mstr.wo_status='" + TextBox3.Text + "' and year(wo_mstr.wo_ord_date)='" + TextBox2.Text + "'group by wo_part"
Dim da As New MySqlDataAdapter(sqlProducts, conn)
Dim ds As New DataSet()
da.Fill(ds, "Products")
'ajouter la chart a la form
Me.Controls.Add(chart1)

ChartArea1.Name = "ChartArea1"
chart1.ChartAreas.Add(ChartArea1)
Legend1.Name = "Legend1"
chart1.Legends.Add(Legend1)
'Positionner le controle Chart
chart1.Location = New System.Drawing.Point(80, 350)
chart1.Name = "Chart1"
'On indique d'afficher ces Series sur le ChartArea1
series1.ChartArea = "ChartArea1"

series1.Legend = "Legend1"
series1.Name = "Series1"
' Ajouter les series à la collection Series du chart
chart1.Series.Add(series1)
' Dimensionner le Chart
chart1.Size = New System.Drawing.Size(800, 200)
chart1.TabIndex = 0
chart1.Text = "Chart1"

chart1.Series("Series1").XValueMember = "vm"
chart1.Series("Series1").YValueMembers = "annee"

chart1.DataSource = ds.Tables("Products")
End If

End Sub
outghouliast Messages postés 2 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 16 août 2007
16 août 2007 à 19:24
Merci Mr ce code
en fait j'ai tt essayé mais on m'a dit que ces dépendances n'existent peut etre pas surtout pour les références web.

si par hasard t'aura des éclaircissements je serai trés reconnaissant en les ayant de ta part.

merci
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
13 août 2007 à 08:34
Salut OUTGHOULIAST, ce bout de code a été développé avec visual studio 2003, il s'agit donc de vb.net...

Il te manque certainement des dépendances en vb6, à toi de voir si tu peux l'adapter.

Bon courage.
outghouliast Messages postés 2 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 16 août 2007
8 août 2007 à 20:09
Bonjour j'ai essayé de tester ton cofde mais ça marche pas
j'ai un visual studio 6.0 et j trouve pas la reference Microsoft office web...
en plus les déclaration des types:
System.Data.DataTable
OWC10.ChSeries
... et bien d'autres

surement j'ai du oublié un truc à faire
je ne suis en fait qu"un débutant
merci de m'avoir éclairci ces points
encore merci pour la collaboration
koutb Messages postés 21 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 17 mai 2008
2 févr. 2007 à 09:22
salut,
moi j'ai le meme problémé que elliot une idée merci

strCategory &= DataGrid1.Item(intI, 0) & "," ????
cs_cyril044 Messages postés 1 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 4 décembre 2008
26 janv. 2007 à 09:21
Salut,

Merci pour ton code: il m'a aidé à réaliser un histogramme cumulé pour mon programme à partir d'un tableau 2D d'entiers (j'ai shunté le datagrid).

Petites questions:

- est-il possible de contourner l'enregistrement dans le fichier info en transférant directement les données vers la picturebox ? En tout cas .getpicture ne semble pas supporter cela :
Picturebox1.image = chartmachin.getpicture() -> Erreur

- comment modifier les couleurs au niveau de des barres de mon histogramme cumulé. J'ai 10 barres ayant chacune 3 valeurs cumulées et j'aimerais avoir 3 couleurs de mon choix pour ces 3 valeurs.

Merci d'avance

cyril_44@hotmail.com
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
3 nov. 2006 à 14:16
Ca fait longtemps que je n'ai pas mis le nez là-dedans.....quel est le problème exactement avec cette ligne??

En ce qui concerne VS2005, j'utilise désormais le contrôle GridView en lieu et place du DataGrid, mais le fonctionnement est assez similaire.

JVETRAVAILLE-> allez un petit effort, ça doit être faisable de l'adapter à VS2005!!! Suffit juste de s'y mettre 5 minutes, c'est certes un peu plus long qu'un copier/coller mais je suis sûr que tu peux le faire! Allez courage ;)
cs_elliot Messages postés 9 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 3 novembre 2006
3 nov. 2006 à 11:31
Demandé si gentillement, c'est sûr qu'il va même nous développer nos applications....

J'ai un problême evec cette ligne, tout le reste est bon. (j'ai VB2005 aussi ^^)

strCategory &= DataGrid1.Item(intI, 0) & ","

Une idée ?

MERCI d'avance.
JVETRAVAILLE Messages postés 12 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 12 novembre 2006
1 nov. 2006 à 14:57
J'ai VISUAL STUDIO 2005
Ton programme ne marche pas du tout !!!
Dépose une source en plus du texte
korndexter Messages postés 1 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 7 septembre 2006
7 sept. 2006 à 09:35
Bonjour, j'ai un problème avec
picturebox1.Image = Image.FromFile(strFileName) si je change avec
picturebox1.ImageUrl = strFileName ca passe mais j'ai une erreur 'Accès refusé', sur le objCSpace.ExportPicture.
Comment resoudre ce problème? merci d'avance
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
21 juil. 2006 à 09:36
J'ai eu ce soucis aussi lorsque mon programme plantais. Le fichier n'était pas supprimé, donc obligé de le faire manuellement (pas terrible...). Il faut placer l'ensemble du traitement dans un bloc try catch et supprimer le fichier même s'il y a un bug auparavant (s'il existe bien sûr!).

Dans ton cas, je ne vois pas pourquoi le fichier n'est pas supprimé. La création d'un second graph devrait écraser le premier.
garcimor80 Messages postés 2 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 09:20
Merci pour cette fonction qui m'a permis de produire une application industrielle. Cependant j'ai juste un petit souci, notamment quand je dois régénérer un deuxième graphique. Je suis obligé d'effacer manuellement le GIF à la racine du disque dur. Peut être est ce du au fait que je ne ferme pas correctement mes objets ....


Encore une fois merci

Garcimor80
Rejoignez-nous