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

Windows Forms Discussion :

graph camembert vb [Fait]


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 324
    Points : 93
    Points
    93
    Par défaut graph camembert vb
    bonjour,
    je cherche a faire des statistiques dans une application et de les représenter par "camembert".

    Voila ce que je cherche à faire :

    Un datagrid un alimenté avec les données de la bdd. Une sélection de la ligne en cours est effectué, la les différents paramètres apparaissent dans des textbox , les différents label indiquant les pourcentage sont renseignés, mais les camembert ne bouge pas.

    Je pense que la valeur qui permet de faire varier l'angle n'est pas prise en compte.

    Je vous joint une partie du code de ce que j'ai déja fait.

    PS : je suis pas un expert, indulgence.

    Partie datagrid et calcul

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
      Private Sub DataGrid2_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles DataGrid2.MouseUp
            Dim ligneencours1 As Integer
    
            On Error GoTo gestionErreurs
            Dim X As Integer = 9
            'recupérer les coordonnées de la souris 
            Dim p = New Point(e.X, e.Y)
            'déterminer la partie clickée du datagrid
            Dim HTI As DataGrid.HitTestInfo = DataGrid2.HitTest(p)
            'si c'est un type 'cellule' 
            If (HTI.Type = DataGrid.HitTestType.Cell) Then
    
                'définir la cellule en cours 
                DataGrid2.CurrentCell = New DataGridCell(HTI.Row, HTI.Column)
                'selectionner la ligne correspondante 
                DataGrid2.Select(HTI.Row)
            End If
            ligneencours = DataGrid2.CurrentRowIndex
            Me.TextBox1.Text = DataGrid2.Item(ligneencours, 1).ToString()
            Me.TextBox6.Text = DataGrid2.Item(ligneencours, 17).ToString()
            Me.TextBox8.Text = DataGrid2.Item(ligneencours, 18).ToString()
            Me.TextBox2.Text = DataGrid2.Item(ligneencours, 21).ToString()
            Me.TextVIP.Text = DataGrid2.Item(ligneencours, 4).ToString()
            Me.TextLatBois.Text = DataGrid2.Item(ligneencours, 5).ToString() '
            Me.TextLatBet.Text = DataGrid2.Item(ligneencours, 6).ToString()
            Me.TextGradinAssis.Text = DataGrid2.Item(ligneencours, 7).ToString()
            Me.TextGradinDebout.Text = DataGrid2.Item(ligneencours, 8).ToString()
            Me.TextPelouse.Text = DataGrid2.Item(ligneencours, 9).ToString()
            Me.NbEntrée.Text = DataGrid2.Item(ligneencours, 3).ToString()
            Me.TextTotalJour.Text = DataGrid2.Item(ligneencours, 16).ToString()
            Me.TextBox3.Text = DataGrid2.Item(ligneencours, 0).ToString
    
    gestionErreurs:
    
            Select Case Err.Number
                Case 9
    
            End Select
            Dim MyConnexion3 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & Application.StartupPath & "\Spectateur.mdb;Jet OLEDB:Database Password=philguio;")
            Dim Mycommand3 As OleDbCommand = MyConnexion3.CreateCommand()
            Dim nbbois As Integer
    
    
            MyConnexion3.Open()
            Mycommand3.CommandText = " SELECT COUNT(TRIBUNE) AS TOTAL FROM T_TRIBUNE  WHERE TRIBUNE = 'TRIBUNE LATERALE BOIS'"
            Dim myReader3 As OleDbDataReader = Mycommand3.ExecuteReader()
    
            myReader3.Read()
    
            nbbois = myReader3.GetValue(0)
    
    
    
            myReader3.Close()
    
            MyConnexion3.Close()
    
          
            Dim MyConnexion5 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & Application.StartupPath & "\Spectateur.mdb;Jet OLEDB:Database Password=philguio;")
            Dim Mycommand5 As OleDbCommand = MyConnexion5.CreateCommand()
    
    
            MyConnexion5.Open()
            Mycommand5.CommandText = " SELECT NbplaceLateraleBois FROM T_RECETTE  where N° = " & TextBox3.Text & ""
            Dim myReader5 As OleDbDataReader = Mycommand5.ExecuteReader()
    
            myReader5.Read()
    
            Nbentrébois = myReader5.GetValue(0)
    
            calbois = 258
            Me.Label5.Text = FormatNumber(((Nbentrébois / calbois) * 100), 1) & "%"
            CalculAngle3 = FormatNumber(((Nbentrébois / calbois) * 100), 1)
            myReader5.Close()
    
            MyConnexion5.Close()
    
        End Sub
    Partie permettant de faire les camemberts

    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
    Public Sub FillPieRectangle2(ByVal e As PaintEventArgs)
    
            Dim redBrush As New SolidBrush(Color.Red)
            Dim greenBrush As New SolidBrush(Color.Green)
            Dim rect As New Rectangle(600, 450, 200, 100)
            Dim alpha As String
            alpha = FormatNumber(CalculAngle3, 1)
            Dim startAngle As Single = 0.0F
            Dim sweepAngle As Single = alpha
            Dim sweepAngle1 As Single = 360
    
            e.Graphics.FillPie(greenBrush, rect, startAngle, sweepAngle1)
            e.Graphics.FillPie(redBrush, rect, startAngle, sweepAngle)
        End Sub
        Private Sub Form_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    
            FillPieRectangle(e)
            FillPieRectangle1(e)
            FillPieRectangle2(e)
    
        End Sub
    Merci de me donner une piste une idée
    @+
    Philippe

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Inutile de réinventer la roue
    ZedGraph

  3. #3
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 324
    Points : 93
    Points
    93
    Par défaut
    C'est bien compliqué tous ceci, moi je cherche quelque chose de simple et surtout qui me permette de progresser en prog vb. je cherche a comprendre d'ou vient mon erreur.

    Merci pour le lien, je verrais l'utilisation plus tard quand mon apprentissage sera plus avancé.
    @+
    Philippe

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    je sais pas ce qui déconne exactement, mais pourquoi tu manipules des nombres sous forme de chaine de caractère ? Par exemple, tu déclares alpha comme un String alors que c'est un nombre, tu utilises FormatNumber alors que tu n'as pas du tout besoin d'avoir ce nombre sous forme de chaine, etc...

  5. #5
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 324
    Points : 93
    Points
    93
    Par défaut
    C'est le camembert qui ne prend pas en compte les évènements de la ligne en cours

    Voila
    Merci pour l'intérêt.
    @+
    Philippe

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par philguio Voir le message
    C'est le camembert qui ne prend pas en compte les évènements de la ligne en cours
    Ben quand une valeur change, il faut que tu rappelles le code qui dessine le camembert, c'est pas automatique...

  7. #7
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 324
    Points : 93
    Points
    93
    Par défaut
    Alors la je ne sais pas faire
    peut etre call mais je ne voie pas ou et comment
    un tuto ou autre
    merci
    @+
    Philippe

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ben tu sais pas faire quoi ? écrire une méthode (Sub ou Function) ? l'appeler ?
    En gros, il faut que tu isoles le code qui dessine le camembert dans une Sub que tu peux rappeler quand tu veux, par exemple à chaque fois que les données changent

    Il y a un cours complet sur VB.NET ici si tu as besoin :
    http://plasserre.developpez.com/vsommair.htm

  9. #9
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 324
    Points : 93
    Points
    93
    Par défaut
    Bon j'ai résolu le pb

    mais j'aimerais bien faire comme tu as dit.

    Je regarde le cours de ph lasserre

    merci en attendant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Taille des camemberts graphe en serie
    Par skunkies dans le forum BIRT
    Réponses: 3
    Dernier message: 17/12/2009, 15h07
  2. [ARTICHOW] Légendes et couleurs d'un graphe camembert
    Par L'aigle de Carthage dans le forum Langage
    Réponses: 10
    Dernier message: 09/05/2008, 17h29
  3. Graphe Excel Camembert
    Par mcouprie dans le forum Excel
    Réponses: 5
    Dernier message: 25/11/2007, 12h11
  4. [ASP]OWC - Graphe Camembert
    Par Franck2mars dans le forum ASP
    Réponses: 2
    Dernier message: 13/02/2007, 09h11
  5. integrer un graphe en camembert
    Par nitteo dans le forum MFC
    Réponses: 5
    Dernier message: 27/06/2006, 13h16

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