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 :

affichage tabulaire dans une listbox


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Points : 29
    Points
    29
    Par défaut affichage tabulaire dans une listbox
    bjr
    Coment rediger l algorithme pour
    afficher les elements d un tableau (de type string)
    ainsi que les valeurs associees
    Exemple concret :
    le tableau contient les elements suivants "500-599","600-699","700-799" de type string
    dans un textbox l user saisi a chaque fois la comission d un employé par exemple
    Le listbox doit afficher ala fin
    le nombre d employé ayant le meme comission(incrementer si plusieurs employés sont dans la meme tranche)
    exemple
    Si 5 employé sont entre 600-699
    Et si 4 employé ont une comission entre 700-799
    et si 3 employé sont entre 500-599
    on aura par exemple dans le listbox

    500-599 3
    600-699 5
    700-799 4
    Merci d avance pour toute aide

  2. #2
    Membre régulier
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    110
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 110
    Points : 106
    Points
    106
    Par défaut
    Salut,
    peux tu préciser ta question?
    veux tu savoir comment associer les valeurs ou comment les formater?

    Bonsoir,
    Dom

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Points : 29
    Points
    29
    Par défaut 1 peu de precision
    je pense que c est clair
    Bon je vais donner des details
    -un texte box pour rentrer 1 valeur par exemple(montant des ventes)
    -un calcul a effectuer par exemple comission salariale obtenue en multipliant la valeur par un pourcentage)
    -un tableau contenant les tranches salariales (ou tranches de comission percues par les commerciaux)
    (un listbox qui doit afficher par exemple
    si on rentre des valeurs 7 fois par exemple
    et que 3 fois on a une valeur comprise entre 500-599(montant de la comission) alors le compteur devra incrementer de 1 a 3
    et la liste box affichera
    500-599 3
    si on rentre des valeurs supplementaires correspondant a cette tranche de comission le chiffre a droite (dans le cas present chiffre 3) sera incrementé a chaque fois
    Dans l exemple precedent j ai bien expliqué
    On rentre le nombre de montant que l on souhaite
    A chaque fois apres calcul le programme incremente la zone qui convient
    ainsi comme je l ai dit dans la description precedente
    on peu avoir
    500-599 3
    600-699 1
    700-799 2
    Ce n est qu un exemple
    J esperes que tu as compris Troll dom
    C est par exemple pour un comptable qui souhaiterai classer ses salariés(commissionaires ou commerciaux) en fonction de leurs revenus

  4. #4
    Membre régulier
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    110
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 110
    Points : 106
    Points
    106
    Par défaut
    Salut c'est clair mais ton titre est "affichage dans une listeBox".

    là tu demandes comment résoudre ton problème métier et le problème de la présentation des résultats qui sont bien deux choses différents.

    pour le problème métier tu es le mieux placé pour le résoudre. Tu peux certainement tout faire avec un tableau à deux dimensions ou avec deux tableaux
    mais un truc du style suivant devrait faire l'affaire.
    On commence l'UI avec juste une listBox pour pouvoir montrer les statistiques.
    Tu peux avoir une structure de donnée qui tient tes fourchettes (donc min et max)
    Code VB : 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
    Public Class Fourchette
        Private mMin As Int32
        Private mMax As Int32
        Public Sub New(ByVal pMin As Int32, ByVal pMax As Int32)
            If pMin > pMax Then
                Throw New ArgumentException("min doit être <= max")
            End If
            mMin = pMin
            mMax = pMax
        End Sub
     
        Public Property Max() As Int32
            Get
                Return mMax
            End Get
            Set(ByVal value As Int32)
                mMax = value
            End Set
        End Property
        Public Property Min() As Int32
            Get
                Return mMin
            End Get
            Set(ByVal value As Int32)
                mMin = value
            End Set
        End Property
     
        Public Overrides Function ToString() As String
            Return mMin & " - " & mMax
        End Function
    End Class

    Après ce qui t'intéresse ce sont des statistiques concernant tes fourchettes. Le minimum pour résoudre ton problème est d'avoir une fourchette et un compteurpour chaque statistique
    Code VB : 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
     
    Public Class StatFourchette
        Private mFourchette As Fourchette
        Private mCount As Int32
        Public Sub New(ByVal pFourchette As Fourchette)
            mFourchette = pFourchette
            mCount = 0
        End Sub
     
        Public Property Count() As Int32
            Get
                Return mCount
            End Get
            Set(ByVal value As Int32)
                mCount = value
            End Set
        End Property
     
        Public Property Fourchette() As Fourchette
            Get
                Return mFourchette
            End Get
            Set(ByVal value As Fourchette)
                mFourchette = value
            End Set
        End Property
        Public Overrides Function ToString() As String
            Return mFourchette.ToString & ":" & vbTab & mCount.ToString()
        End Function
    End Class

    Maintenant tu peux initialiser tes fourchettes et les montrer:
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            InitStatListe()
            ShowStat()
        End Sub
    la métode initStatListe er trivielle ici, les valeurs pourrait venir d'une base de donnée ou de n'importe où
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub InitStatListe()
            mStatFourchList = New List(Of StatFourchette)(3)
            Dim f1 As New Fourchette(0, 99)
            Dim f2 As New Fourchette(100, 199)
            Dim f3 As New Fourchette(200, 299)
            mStatFourchList.Add(New StatFourchette(f1))
            mStatFourchList.Add(New StatFourchette(f2))
            mStatFourchList.Add(New StatFourchette(f3))
        End Sub
    la méthode ShowStat va montrer tes données. Dans un premier temps on ne s'occupe pas de les formater vu que l'on résoud le problème métier en premier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ShowStat()
            Me.ListBox1.Items.Clear()
            For Each s As StatFourchette In mStatFourchList
                Me.ListBox1.Items.Add(s)
            Next
        End Sub
    Ce qu'il reste maintenant c'est de pouvoir saisir une valeur puis de mettre à jour la statistique correspondante et enfin d'afficher le résultat. On rajoute donc une textbox et un bouton dans l'UI. Un click sur le bouton va déclencher le traitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim value As Int32
            Try
                value = CInt(Me.TextBox1.Text)
                UpdateStat(value)
                ShowStat()
            Catch ex As Exception
                MsgBox("Entrer un entier")
            End Try
        End Sub
    Reste à mettre à jour les statistiques. Vu ton énoncé il n'y a pas un grand nombre de fourchette, il est donc raisonnable de parcourir la liste de statistique séquensiellement ce qui donne du code facile à comprendre. Avec un grand nombre d'élément ou de traitement il faudrait peut être envisager un autre type de structure de donnée.
    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
    Private Sub UpdateStat(ByVal value As Int32)
            Dim finit As Boolean = mStatFourchList.Count() = 0
            Dim idx As Int32 = 0
            Dim s As StatFourchette
            While Not finit
                s = mStatFourchList(idx)
                If s.Fourchette.IsInFourchette(value) Then
                    s.Count += 1
                    finit = True
                Else
                    finit = idx + 1 >= mStatFourchList.Count
                    If Not finit Then
                        idx += 1
                    End If
                End If
            End While
        End Sub
    Là on se rend compte qu'il faut pouvoir dire si une valeur est dans un fourchette. On rajoute donc un métode IsInFourchette à la classe Fourchette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function IsInFourchette(ByVal value As Int32) As Boolean
            Dim biggerEqualsThanMin As Boolean = value >= mMin
            Dim smallerEqualThanMax As Boolean = value <= mMax
     
            Return biggerEqualsThanMin AndAlso smallerEqualThanMax
        End Function
    voilà tu as une partie du programme, il te reste à trouver comment formatter tes données ou envisager d'utiliser un autre controle (datagridview par exemple).

    donc tu avais bien 2 questions
    Dom

Discussions similaires

  1. Affichage incorrecte dans une listbox
    Par miamou dans le forum IHM
    Réponses: 3
    Dernier message: 29/04/2010, 15h07
  2. Problème d'affichage dans une listbox
    Par swap_nibble dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 25/01/2008, 17h29
  3. Affichage dans une listbox
    Par egg3774 dans le forum IHM
    Réponses: 4
    Dernier message: 13/06/2007, 18h15
  4. Affichage d'un champ dans une listbox
    Par BigZ444 dans le forum Bases de données
    Réponses: 5
    Dernier message: 22/04/2007, 18h23
  5. affichage des décimales incomplète dans une listbox
    Par Daniel MOREAU dans le forum Access
    Réponses: 1
    Dernier message: 19/12/2006, 16h10

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