IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

MsChart en entonnoir


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 337
    Points : 120
    Points
    120
    Par défaut MsChart en entonnoir
    Bonjour mesdames et messieurs.
    Je développe avec vb 2012.
    Je veux construire un graphe en entonnoir selon l'image jointe. Mais je n'y arrive pas malgré tous les tutos que je lis.
    Je vous présente le code
    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
    Imports System.Data.SqlClient
    Imports System.Windows.Forms.DataVisualization.Charting
     
    Public Class tableau_de_bord
    Dim bTab As DataTable
     
    Private Sub ExecuteLMD(bSql As String, bTable As String)
            sqlCONN.Open()
            Dim sqlCmd As New SqlCommand(bSql)
            Dim Dadpter As New SqlDataAdapter(sqlCmd)
            bTab = New DataTable
            Dim DSet As New DataSet
            sqlCmd.Connection = sqlCONN
            Dadpter.Fill(DSet, bTable)
            bTab = DSet.Tables(bTable)
     
            DSet = Nothing
            sqlCmd = Nothing
            Dadpter = Nothing
            sqlCONN.Close()
    End Sub
     
    Private Sub RealisationGraphe()
            Dim bStr As String
            Dim series As Series
            bStr = "select sum(Montant) as M,Libellé from table_vente group by Libellé order by sum(Montant) Desc"
            ExecuteLMD(bStr, "table_vente")
            chart_vente.DataSource = bTab
     
            'chart_vente.Series(0).YValueMembers = "M"
            'chart_vente.Series(0).XValueMember = "Libellé"
     
            For Each series In chart_vente.Series
                    series.YValueMembers = "M"
                    series.XValueMember = "Libellé"
     
                    series.ChartType = SeriesChartType.Funnel
                    series("FunnelPointGap") = "2"
     
                    ' Angle 3D (entre -10 et 10): -10=vue de dessous, 10=vue de dessus.
                    series("Funnel3DRotationAngle") = "10"
     
                    ' Style 3D  "CircularBase" ou "SquareBase" (base circlaire ou carré)
                    series("Funnel3DDrawingStyle") = "CircularBase"
     
                    'series("FunnelStyle") = "YIsHeight"
                    'series("FunnelLabelStyle") = "Outside"
            Next
     
            'For i As Integer = 0 To bTab.Rows.Count - 1
            '    Dim A As String = bTab.Rows(i).Item("Libellé").ToString
            '    chart_vente.Series(1).Points(i).Label = bTab.Rows(i).Item("Libellé").ToString
            'Next
    end sub
     
     
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            RealisationGraphe
    end sub
    End Class
    Volilà le graphe que j'obtiens

    Nom : chart en entonnoir.png
Affichages : 256
Taille : 12,2 Ko

    et voilà le graphe que je veux obtenir

    Nom : chart en entonnoir 2.png
Affichages : 886
Taille : 110,8 Ko

    Merci d'avance

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    Bonjour
    Caramba ,il manque l'essentiel :le style 3D dans ton code...!!!
    code .vb revu :
    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
     
    Imports System.Windows.Forms.DataVisualization.Charting
     
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            CreeDeuxSeies()
     
     
            For Each series In Chart1.Series
                series.YValueMembers = "M"
                series.XValueMember = "Libellé"
     
                series.ChartType = SeriesChartType.Funnel
                series("FunnelPointGap") = "2"
     
                ' Angle 3D (entre -10 et 10): -10=vue de dessous, 10=vue de dessus.
                series("Funnel3DRotationAngle") = "10"
     
                ' Style 3D  "CircularBase" ou "SquareBase" (base circlaire ou carré)
                series("Funnel3DDrawingStyle") = "CircularBase"
     
                series("FunnelStyle") = "YIsHeight"
                series("FunnelLabelStyle") = "Outside"
            Next
     
            'Il  manque le style 3D 
            Dim chartArea3DStyle As ChartArea3DStyle = New ChartArea3DStyle()
     
            chartArea3DStyle.Enable3D = True
     
            chartArea3DStyle.LightStyle = LightStyle.Realistic
     
            chartArea3DStyle.Rotation = 5
     
            chartArea3DStyle.Inclination = 40
     
            chartArea3DStyle.PointDepth = 50
     
            Chart1.ChartAreas("ChartArea1").Area3DStyle = chartArea3DStyle
     
        End Sub
        Private Sub CreeDeuxSeies()
     
            Chart1.Series("Series1").YValueType = ChartValueType.Int32
     
            For i As Integer = 10 To 100 Step 10
                Chart1.Series("Series1").Points.AddXY(i, i)
            Next
     
            Chart1.Series("Series2").YValueType = ChartValueType.Int32
     
            For i As Integer = 15 To 100 Step 10
                Chart1.Series("Series2").Points.AddXY(i, i)
            Next
     
     
        End Sub
    End Class
    bon code...

Discussions similaires

  1. [] [Excel] Exporter un graphe MSChart vers Excel
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/12/2002, 17h49
  2. [VBA-W] [Word] Insérer une image MSChart
    Par fredo1664 dans le forum VBA Word
    Réponses: 2
    Dernier message: 20/11/2002, 09h09
  3. [VB6] [MSChart] Utilisation de TwipsToChartPart
    Par fea dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/10/2002, 17h57
  4. [VB6] [MSChart] Courbe incorrecte
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 08/10/2002, 21h53
  5. MSCHART
    Par alain679 dans le forum MFC
    Réponses: 23
    Dernier message: 30/07/2002, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo