Accueil > > > CRÉATION D'UN GRAPHIQUE À PARTIR D'UNE DATAGRID
CRÉATION D'UN GRAPHIQUE À PARTIR D'UNE DATAGRID
Information sur la source
Description
Voici une petite fonction qui permet de mettre sous forme graphique les données contenues dans une DataGrid. J'ai développé ce code dans le cadre d'un projet où je devais attaquer une base SQL et afficher des données sous forme de tableau (DataGrid). Je devais ensuite les faire apparaître sous forme graphique. Le graphique obtenu est du type "camembert", mais il suffit de modifier la propriété "objChart.Type" pour obtenir toute sorte de graph. Les paramètres d'entrée de la fonction sont le titre du graph, et la DataTable qui correspong à la propriété DataSource de la DataGrid. N'hésitez surtout pas à me faire part de vos critiques, même négatives (et oui, c'est comme ça qu'on avance). Ah oui, au fait, il faut avoir au préalable ajouter le référence Microsoft Office XP Web Components.
Source
- Imports System.IO 'pour le FilInfo
- Imports OWC10 'pour les objets grahiques
-
- Private Sub CreerGraph(ByVal strTitre As String, ByVal dTable As System.Data.DataTable)
-
- Dim objCSpace As New ChartSpaceClass
- Dim objChart As ChChart
- Dim objSeries As OWC10.ChSeries
- Dim strCategory As String
- Dim strValue As String
- Dim strFileName As String
- Dim intI, intJ As Integer
- Dim file_gif As FileInfo
-
- 'S'il n'y a pas d'enregistrements da,s le DataGrid, inutile de créer le graph (on aurait un graph tout blanc : aucun intérêt)
- If dTable.Rows.Count <> 0 Then
-
- PictureBox1.Visible = True
- objChart = objCSpace.Charts.Add(0)
- 'Type du graph (ici camembert 3D)
- objChart.Type = ChartChartTypeEnum.chChartTypePie3D
-
- 'Titre et légendes
- objChart.HasTitle = True
- objChart.Title.Caption = strTitre
- objChart.HasLegend = True
- objChart.Legend.Border.DashStyle = OWC10.ChartLineDashStyleEnum.chLineSolid
- objChart.Legend.Position = OWC10.ChartLegendPositionEnum.chLegendPositionRight
- 'Les données du graph correspondent au contenu de la Datatable qui est affiché dans un DataGrid
- For Each dRow As DataRow In dTable.Rows
- strCategory &= DataGrid1.Item(intI, 0) & ","
- strValue &= DataGrid1.Item(intI, 1).ToString.Replace(",", ".") & ","
- intI += 1
- Next
- objSeries = objChart.SeriesCollection.Add(0)
- 'Mise en forme des datas dans le graph
- objSeries.SetData(ChartDimensionsEnum.chDimCategories, ChartSpecialDataSourcesEnum.chDataLiteral, strCategory)
- objSeries.SetData(ChartDimensionsEnum.chDimValues, ChartSpecialDataSourcesEnum.chDataLiteral, strValue)
-
- strFileName = "C:\graph.gif"
- file_gif = New FileInfo(strFileName)
- 'Si le fichier existe déjà, ça signifie qu'on a déjà associé le graph à la PictureBox
- 'Cette partie permet d'actualiser le graph avec les datas (si elles ont changé)
- If file_gif.Exists Then
- 'On libère les ressources liées au fichier
- PictureBox1.Image.Dispose()
- file_gif.Delete()
- End If
- 'Export du graph au format gif pour l'assigner à la propriété Image de la PictureBox
- objCSpace.ExportPicture(strFileName, , 400, 300)
- PictureBox1.Visible = True
- PictureBox1.Image = Image.FromFile(strFileName)
- Else
- PictureBox1.Visible = False
- End If
- End Sub
Imports System.IO 'pour le FilInfo
Imports OWC10 'pour les objets grahiques
Private Sub CreerGraph(ByVal strTitre As String, ByVal dTable As System.Data.DataTable)
Dim objCSpace As New ChartSpaceClass
Dim objChart As ChChart
Dim objSeries As OWC10.ChSeries
Dim strCategory As String
Dim strValue As String
Dim strFileName As String
Dim intI, intJ As Integer
Dim file_gif As FileInfo
'S'il n'y a pas d'enregistrements da,s le DataGrid, inutile de créer le graph (on aurait un graph tout blanc : aucun intérêt)
If dTable.Rows.Count <> 0 Then
PictureBox1.Visible = True
objChart = objCSpace.Charts.Add(0)
'Type du graph (ici camembert 3D)
objChart.Type = ChartChartTypeEnum.chChartTypePie3D
'Titre et légendes
objChart.HasTitle = True
objChart.Title.Caption = strTitre
objChart.HasLegend = True
objChart.Legend.Border.DashStyle = OWC10.ChartLineDashStyleEnum.chLineSolid
objChart.Legend.Position = OWC10.ChartLegendPositionEnum.chLegendPositionRight
'Les données du graph correspondent au contenu de la Datatable qui est affiché dans un DataGrid
For Each dRow As DataRow In dTable.Rows
strCategory &= DataGrid1.Item(intI, 0) & ","
strValue &= DataGrid1.Item(intI, 1).ToString.Replace(",", ".") & ","
intI += 1
Next
objSeries = objChart.SeriesCollection.Add(0)
'Mise en forme des datas dans le graph
objSeries.SetData(ChartDimensionsEnum.chDimCategories, ChartSpecialDataSourcesEnum.chDataLiteral, strCategory)
objSeries.SetData(ChartDimensionsEnum.chDimValues, ChartSpecialDataSourcesEnum.chDataLiteral, strValue)
strFileName = "C:\graph.gif"
file_gif = New FileInfo(strFileName)
'Si le fichier existe déjà, ça signifie qu'on a déjà associé le graph à la PictureBox
'Cette partie permet d'actualiser le graph avec les datas (si elles ont changé)
If file_gif.Exists Then
'On libère les ressources liées au fichier
PictureBox1.Image.Dispose()
file_gif.Delete()
End If
'Export du graph au format gif pour l'assigner à la propriété Image de la PictureBox
objCSpace.ExportPicture(strFileName, , 400, 300)
PictureBox1.Visible = True
PictureBox1.Image = Image.FromFile(strFileName)
Else
PictureBox1.Visible = False
End If
End Sub
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Afficher ds dataGrid le rsltat requete SQL [ par tom ]
Comment puis je afficher dans un dataGrid le résultat d'une requete SQL que je viens juste de faire avant, et ceci avec des réponses differentes par c
Exportation d'un DataGrid pour Excel [ par Spard ]
Bonjour a tous.Euh.. voila mon problemeJ'ai un resultat de requete SQL que je recupere dans un Datagrid ( 3 colonnes ). Je souhaite utiliser les éléme
C'est compliqué le MS CHART !!!!! [ par reyman ]
1)Lorsque l'on trace un graphique de 10 valeurs, le prog affiche automatiquement en abcisse '1 2 3....10'Comment faire pour qu'il n'affiche que 2 vale
en vb créer un graphique basé sur requete sql et dans excel [ par aysse ]
Bonjour,je sais comment créer un graphique en Vb dans excel en mettant comme source de données du graphique une plage de données d'une feuille excel m
Creer un graphique à partir d'un datagrid [ par Madmonk62 ]
Je desire creer un graphique à partir d'une datagridSi quelqu'un peut m'indiquer comment faire exactement.Merci
Définir les données a visionner dans un graphique [ par kaira008 ]
Bonjour a tous,Voila j'ai une base de donnée access avec des données a l'intérieur je m'en sert pour tracer un graphique sous excel. Donc pour résumer
Optimisation vb.net et sql [ par mestari ]
En fait je fais une recherche multicritères avec une requete sql (un peu compliquée) stockée dans un objet commande, je parviens grace à un dataset, u
graphique sous forme de camembert [ par willfred ]
je recherche un ocx ou un moyen de faire des graphiques sous forme de camembertmerci
CheckBox + datagrid avec Sql Server [ par zenori ]
Bonjour,J'alimente un datagrid avec un adodc via une procédure stockée sous SQL Server.J'ai une colonne que je voudrais afficher avec une check box, e
SQL Server et DataGrid Bound [ par oufben ]
Salut,J'ai un sale probleme... Comment pourrais-je utiliser une Datagrid Bound pour afficher des données de SQL Server ?Le truc c'est que j'ai créé un
|
Derniers Blogs
TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|