0/5 (12 avis)
Snippet vu 26 439 fois - Téléchargée 33 fois
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
22 juin 2012 à 01:35
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
16 août 2007 à 19:24
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
13 août 2007 à 08:34
Il te manque certainement des dépendances en vb6, à toi de voir si tu peux l'adapter.
Bon courage.
8 août 2007 à 20:09
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
2 févr. 2007 à 09:22
moi j'ai le meme problémé que elliot une idée merci
strCategory &= DataGrid1.Item(intI, 0) & "," ????
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.