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 :

Chart multi datasource ? [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 7
    Par défaut Chart multi datasource ?
    Bonjour,

    Je fais un petit programme ou j'affiche des statistiques à l'aide de chart en VB.net

    Je viens récupérer des données en faisant un select sur une colonne mois et après j'attribue le datasource aux chart, jusque là pas de problème tout allait bien.

    Le problème c'est que souvent dans ma base de données je n'ai pas tous les mois de l'année, donc je me retrouve avec des graphiques basés sur 2, 3 ou 5 mois... c'est pas le top
    Il faudrait que j'aie tous les mois affichés en abscisse (même s'ils ne sont pas dans mon datasource, ils seraient donc de valeur 0)
    Je ne sais pas du tout comment m'y prendre... J'avais pensé à un Point.DatabindXY ... avec une liste + ma base... c'est bizarre.

    Pourriez-vous m'éclairer ?

    Merci

  2. #2
    Membre émérite Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Par défaut
    Salut,

    Je pense que la manière la plus simple de faire est de passer par une étape intermédiaire entre la récupération de ta liste d'objet de ta base et son attribution en datasource de ton chart. Dans cette étape intermédiaire, tu pourrais rajouter les items qui te manque pour avoir un graph complet.

    Peux tu nous montrer le code que tu as actuellement ?

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 7
    Par défaut
    Salut,

    Merci pour ta réponse, voici un bout de code. En gros rajouter un datarow avec des valeurs de 0 pour chaque mois qui ne figurent pas dans ma base ? Si c'est ça je me sens toute bête d'un coup xD.

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
                Dim connection As OleDb.OleDbConnection
                Dim dataset As DataSet
                Dim command As OleDb.OleDbDataAdapter
                Try
     
     
                    connection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & Clientfile & "';Extended Properties=Excel 8.0;")
     
                    command = New System.Data.OleDb.OleDbDataAdapter("select Mois, SUM(déposé) as [Total déposé]," _
                                                                     & "SUM(`Aff initial`) as [Total initial]," _
                                                                     & "SUM(`Aff CI`) as [Total CI]," _
                                                                     & "Round(SUM(`Aff CI`) /SUM(déposé),3) as [Aff Moyen]," _
                                                                     & "SUM(`NV# Tri 1`) as [Nv Tri 1]," _
                                                                     & "SUM(`NV# Tri 2`) as [Nv Tri 2]," _
                                                                     & "SUM(`NV# Tri 3`) as [Nv Tri 3]," _
                                                                     & "SUM(`NV# Tri 4`) as [Nv Tri 4]," _
                                                                     & "round(SUM(`NV# Tri 1`)/ sum(déposé) * 100,2) as [Perc_NM1]," _
                                                                     & "round(SUM(`NV# Tri 2`)/ sum(déposé)* 100,2) as [Perc_NM2]," _
                                                                     & "round(SUM(`NV# Tri 4`)/ sum(déposé)* 100,2) as [Perc_Meca]," _
                                                                     & "SUM(prestation) as [Total Prestation]," _
                                                                     & "round(SUM(prestation)/ sum(déposé/1000),2) as [Presta RE au mille]" _
                                                                     & "from [Production$]" _
                                                                     & "WHERE Mois LIKE ""%" & crit1 & "%""" _
                                                                     & " AND Client LIKE ""%" & crit2 & "%""" _
                                                                     & " AND Format LIKE ""%" & crit4 & "%""" _
                                                                     & " AND Produit LIKE ""%" & crit3 & "%""" _
                                                                     & " GROUP BY Mois", connection)
     
     
                    command.TableMappings.Add("Table", "TestTable")
     
                    dataset = New System.Data.DataSet()
                    command.Fill(dataset)
     
     
                    DataGridView1.DataSource = dataset.Tables(0)
                    C_Depos.DataSource = dataset.Tables(0)
     
     
                    With DataGridView1
     
                        .Columns("Aff Moyen").DefaultCellStyle.Format = "C2"
                        .Columns("Total Prestation").DefaultCellStyle.Format = "C2"
                        .Columns("Presta RE au mille").DefaultCellStyle.Format = "C2"
                        .Columns("Total CI").DefaultCellStyle.Format = "C2"
                    End With
     
     
                    connection.Close()
     
     
     
                Catch ex As Exception
     
                    MessageBox.Show(ex.ToString())
                End Try
     
                AfficheChart()
     
            End If
        End Sub
     
     
        'GRAPHIQUES
        Sub AfficheChart()
            If Clientfile <> "" Then
     
     
                Dim T_Depose, T_AffCI, T_AffMoy, T_Presta, T_PrestaMille As Double
                Dim TotRows As Integer
     
                Dim percent As Boolean
     
                Select Case SlctProduit.Text
                    '_________________________________________________________________________________________________________________________________________
     
                    '__________________________________________________________________________________________________
     
                    '___________________________________________ESP. LIB / PLURIEL _________________________________________
     
                    '__________________________________________________________________________________________________
     
                    '__________________________________________________________________________________________________
     
                    Case "Destinéo Es. Lib.", "Destinéo Pluriel", "Tous les produits", "Destinéo Intégral"
     
     
                        'Dans une series YValueMembers indique quelle colonne utiliser pour les valeurs Y
                        C_Depos.Series(0).YValueMembers = "Total déposé"
                        Chart1.Series("Series1").YValueMembers = "Total CI"
                        Chart2.Series("Series1").YValueMembers = "Aff Moyen"
                        Chart3.Series("Series1").YValueMembers = "Total Prestation"
                        Chart4.Series("Series1").YValueMembers = "Presta RE au mille"
     
     
                        Chart1.Series("Series1").XValueMember = "Mois"

  4. #4
    Membre émérite Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Par défaut
    Salut,

    C'est le moyen le plus simple de gérer le problème. Après ca dépend tes besoins. Le problème de cette méthode, c'est qu'on ne distingue pas le "0" en valeur parce que rien n'a été renseigné du "0" parce que le calcul en base donne 0. Selon les métiers cela peut avoir des impacts différents. Donc à voir, si cela te gène pas.

    Sinon dans le cas de ton code, l'idée est de récupérer ton dataset, ajouter les valeurs qui te manque et ensuite passer ce nouveau dataset au datasource de ton datagriedview.

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 7
    Par défaut
    Merci pour tes réponses, finalement c'est ce que j'avais fait : ajouter des rows avec des valeurs à 0, aucun impact pour le besoin final. J'ai tout de même fait ma petite liste de mois pour pouvoir trier dessus.

    A bientôt

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

Discussions similaires

  1. CrudRepository avec multi datasources
    Par Yonito dans le forum Spring
    Réponses: 0
    Dernier message: 27/07/2016, 18h15
  2. Ibatis multi datasources
    Par screenvlf dans le forum JDBC
    Réponses: 0
    Dernier message: 22/12/2008, 16h46
  3. Réponses: 1
    Dernier message: 21/09/2007, 14h42
  4. [JFreeChart] Line Chart Multi Axes
    Par wiss20000 dans le forum 2D
    Réponses: 7
    Dernier message: 23/05/2007, 15h56
  5. [JDBC] Architecture multi DataSources
    Par babylone7 dans le forum JDBC
    Réponses: 3
    Dernier message: 29/09/2006, 13h23

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