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

WinDev Discussion :

Trie et Calcul sur TABLE [WD20]


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Trie et Calcul sur TABLE
    Bonjour
    J'ai un petit soucis avec un calcul sur une table de facturation.
    En Effet, les articles sont ajoutés un a un par les caissières par code ou codebarre (Col_Code)
    A la fin de la saisie (que je détermine après un Echap)
    Je veux un trie et un calcul en additionnant les codes articles identique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       TableTrie(TABLE_Facturation,COL_Code..Nom)
          POUR i=1 A TableOccurrence(TABLE_Facturation)
            TANTQUE COL_Code[i]=COL_Code[i+1]
                          COL_Quantite[i]=COL_Quantite[i]+COL_Quantite[i+1]
                         TableSupprime(TABLE_Facturation,i+1)
            FIN
       FIN
    Effectivement, il m'envoie le message d'erreur suivant :
    Vous avez appelé l'opérateur [] sur le champ TABLE_Facturation.
    L'indice spécifié [3] est invalide.
    Les valeurs valides sont comprises entre 1 et 2 (inclus).
    Je comprend qu’après la suppression de la ligne i+1, l’occurrence de la table change, mais je cherche l'astuce et la je coince..
    Si je peu avoir des avis ou des astuces pour contourner tout ça (avec une tablecherche par exemple ou j'ai coincé aussi)
    merci...

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Une solution ici est de parcourir la table "à l'envers", et partant de la dernière ligne vers la première.

    Tatayo.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Une solution ici est de parcourir la table "à l'envers", et partant de la dernière ligne vers la première.

    Tatayo.
    Merci pour ta reponse...
    j'ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    POUR i=TableOccurrence(TABLE_Facturation) A 1
    effectivement il m'envoie plus d'erreur, mais par contre il trie les codes (c'est normal a cause du Tabletrie) sans pour autant incrémenter les quantités ni supprimer les lignes....
    tu as une idée de ce que peu devenir le code final?
    Merci

  4. #4
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 57
    Points : 102
    Points
    102
    Par défaut
    bonjour,

    le code devrait etre comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    TableTrie(TABLE_Facturation,COL_Code..Nom)
    POUR i= TableOccurrence(TABLE_Facturation) _A_ 1 pas -1
          SI i>1 _ET_ COL_Code[i]=COL_Code[i-1]
              COL_Quantite[i]=COL_Quantite[i]+COL_Quantite[i-1]
              TableSupprime(TABLE_Facturation,(i-1))
          FIN
    FIN
    a tester mais j'aurais fait comme ca

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par kool-Paladin Voir le message
    bonjour,

    le code devrait etre comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    TableTrie(TABLE_Facturation,COL_Code..Nom)
    POUR i= TableOccurrence(TABLE_Facturation) _A_ 1 pas -1
          SI i>1 _ET_ COL_Code[i]=COL_Code[i-1]
              COL_Quantite[i]=COL_Quantite[i]+COL_Quantite[i-1]
              TableSupprime(TABLE_Facturation,(i-1))
          FIN
    FIN
    a tester mais j'aurais fait comme ca
    Parfait, j'ai testé et sa marche parfaitement
    Merci infiniment pour ton aide

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    On va simplifier un tout petit peu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TableTrie(TABLE_Facturation,COL_Code..Nom)
    POUR i= TableOccurrence(TABLE_Facturation) _A_ 2 pas -1      // 2 au lieu de 1 
          SI COL_Code[i]=COL_Code[i-1]                                       // plus besoin de cas particulier pour i=1
              COL_Quantite[i]=COL_Quantite[i]+COL_Quantite[i-1]
              TableSupprime(TABLE_Facturation,(i-1))
          FIN
    FIN
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

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

Discussions similaires

  1. Mise à jour champs par calcul sur table jointe
    Par SylvainM dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/03/2008, 17h38
  2. Calcul sur Table
    Par benjaminalvarez dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/02/2008, 03h52
  3. Réponses: 11
    Dernier message: 08/01/2008, 11h36
  4. somme sur champ calculé et table liée
    Par pierrot67 dans le forum Bases de données
    Réponses: 6
    Dernier message: 06/11/2006, 18h02
  5. Réponses: 4
    Dernier message: 15/06/2006, 16h42

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