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 :

Assignation sans effet


Sujet :

Windows Forms

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut Assignation sans effet
    Bonjour,

    Je rentre directement dans le vif du sujet.

    Voici une structure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Structure article
        Dim prixUnit As Decimal
        Dim quantite As Integer
        Dim total As Decimal
        Dim rayon As String
        Dim rabais As Decimal
    End Structure
    Et une deuxième
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Structure ssTotal
        Dim art() as article
        Dim cpt As integer
        Public Sub AddArticle(ByVal a As article)
            ReDim Preserve art(cpt)
            cpt += 1
        End Sub
        Public Sub Initialize()
            cpt = 0
        End Sub
    End Structure
    Bon après, je fais tout un traitement assez fastidieux à partir d'un fichier contient les tickets de caisse d'une journée dont je vous épargnerai les détails.

    Mais à un moment, je fais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim caSousTotal as Decimal = 0
    For Each elem As article in sousTotal.art
        caSousTotal += elem.total
    Next
     
    Dim tmp As Decimal = 0
    For Each elem As article in sousTotal.art
        tmp = CDec((CInt(v) / 100) * (elem.total / caSousTotal))
        elem.rabais = tmp
    Next
    Ne vous occupez pas du calcul, il me donne bien le résultat escompté.
    Le soucis est que la propriété rabais de l'article reste toujours à 0...
    J'ai même essayé d'affecté directement la valeur 2 dans rabais en faisant elem.rabais = 2 mais ça ne change rien, rabais reste à 0.

    Est-ce que quelqu'un aurait une idée du pourquoi ?

    Merci d'avance.

    Griftou.
    Kropernic

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    t'as essayé de debugger en pas à pas ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bien sûr.

    C'est la première chose que je fais à chaque fois que j'ai un couac.

    Sinon, j'ai aussi ajouté une instruction qui sert à rien après l'affectation (genre dim a as integer = 0) pour pouvoir voir la valeur de l'attribut rabais de l'élément en cours (une fois sur le next, on n'y a plus accès) et j'ai constaté que rabais est bien mis à jour.

    Je ne comprends donc pas pourquoi une fois hors de la boucle c'est remis à 0. Plus fort encore, si je regarde avec l'intellisense sur elem, la valeur est mise à jour. Si je regarde sur le nom du tableau dans la déclaration de la boucle et que je navigue jusqu'aux élements, là le rabais reste à 0.

    Je n'y comprends strictement rien. Si quelqu'un pouvait m'expliquer ce qu'il se passe, cela m'arrangerait fortement.

    Griftou.
    Kropernic

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ca peut arriver quand le code est dans une dll et que la référence diffère du code de la dll qui est dans le meme solution


    sinon utiliese une collection List(Of ) plutot qu'un tableau avec redim preserve, c'est vraiment moche
    et les propriétés plutot que des variables directement permettent de mieux débugger ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    ca peut arriver quand le code est dans une dll et que la référence diffère du code de la dll qui est dans le meme solution


    sinon utiliese une collection List(Of ) plutot qu'un tableau avec redim preserve, c'est vraiment moche
    et les propriétés plutot que des variables directement permettent de mieux débugger ...
    Bin c'est pas ce que je fais ?

    J'utilise bien un simple tableau non ?

    J'suis pas sûr d'avoir tout compris là ^^
    Kropernic

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    sinon utilise une collection List(Of ) plutot qu'un tableau avec redim preserve, c'est vraiment moche
    pourtant ma phrase est bien tournée, utilise un list of plutot qu'un tableau
    les tableaux c'est nul
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ah bin j'avais mal lu sorry :-/

    Ok je vais tenter. J'me documente sur le sujet vu que j'ai encore jamais utilisé ça puis j'te dis quoi.

    Merci !
    Kropernic

  8. #8
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Voilà, j'ai modifié mon code et j'ai fait avec les List (Of T) et le résultat est le même.

    A la sortie de la boucle, la propriété rabais est toujours à 0.

    Je ne comprends pas.

    Griftou.
    Kropernic

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    faudrait nous redonner les modifs de code
    normalement la structure ssTotal n'as plus lieu d'etre

    et puis faudra un peu de plus de code, genre l'endroit ou tu ajoutes des articles dans un sous total

    enfin le problème vient de ton codage ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ouais, j'crois que j'vais recommencer un bout from scratch.

    C'est pcq je pars d'un fichier codé en packed decimal... C'est un format qui a plus de 20 piges. C'est foireux à lire et à réorganiser.

    Merci en tout cas !

    Griftou.
    Kropernic

Discussions similaires

  1. [forms 6i]execute_query sans effet
    Par pjcejbpojo dans le forum Forms
    Réponses: 11
    Dernier message: 28/04/2006, 17h08
  2. [AJAX] Fontion JS sans effet
    Par LoK dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2006, 14h43
  3. Combo sans effet
    Par GBW067 dans le forum Sécurité
    Réponses: 5
    Dernier message: 29/01/2006, 07h48
  4. Requête UPDATE sans effet
    Par Death83 dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/01/2006, 01h23
  5. Sans effet: StringGrid1->Cells[1][1][2] = c ?
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/11/2002, 10h32

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