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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2013
    Messages : 28
    Points : 15
    Points
    15

    Par défaut Lecture d'une table mémoire et remplissage d'une autre table mémoire, avec sous-totaux

    Bonjour
    Je demande votre aide pour une optimisation de code.
    Je vous explique mon cas. J'ai une table mémoire (liste) remplie par programmation qui comporte plusieurs colonnes dont 2 qui nous intéressent. Code et Qté.
    Je voudrais remplir une autre table mémoire (liste1) similaire à la première, de façon à cumuler les quantités pour le même code. (sans doublons cette fois-ci)
    Je n'arrive pas à trouver le code idéal.
    Merci de votre aide.

  2. #2
    Expert éminent
    Homme Profil pro
    Responsable Datas
    Inscrit en
    janvier 2009
    Messages
    3 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Datas

    Informations forums :
    Inscription : janvier 2009
    Messages : 3 552
    Points : 7 757
    Points
    7 757

    Par défaut

    Bonjour,
    Tu peux utiliser un tableau associatif d'entier, dont la clé est ta valeur "Code".
    Quand tu remplis la première table, tu remplis en même temps ce tableau associatif:
    Code windev : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    taMonTableau[scode] += MaValeur
    En fin de remplissage, il suffit de le parcourir pour remplir la deuxième table.

    Tatayo.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2013
    Messages : 28
    Points : 15
    Points
    15

    Par défaut

    Merci pour ta réponse Tatayo; Je ne connais pas la fonction tableau associatif.
    Je vais étudier ça ce soir car je suis au travail sans possibilité de programmation (qui n'est pas mon métier)

  4. #4
    Membre expérimenté
    Femme Profil pro
    Consultant fonctionnel
    Inscrit en
    janvier 2012
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : janvier 2012
    Messages : 584
    Points : 1 346
    Points
    1 346

    Par défaut

    Tu peux aussi regarder du côté de TableCherche()
    Peut-être plus simple pour un débutant.

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    2 107
    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 : 2 107
    Points : 4 409
    Points
    4 409

    Par défaut

    Comme Serendib, je pense que les tableaux associatifs sont un peu compliqués.
    Je te conseille de trier ta liste ou ta table (avec TableTrie() ou ListeTrie() ), puis de parcourir cette liste préalablement triée .

    Cette discussion ici peut éventuellement t'aider pour la suite.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2013
    Messages : 28
    Points : 15
    Points
    15

    Par défaut

    Je voyais pltuôt un code qui marche bien du style :

    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
    SAP1,SAP2,SAPCumul,Qté1,Qté2,QtéCumul sont des chaînes
    HExécuteRequête(Req_CumulQté)
    HLitPremier(Req_CumulQté)
     
    SAP1=Req_CumulQté.SAP
    Qté1=Req_CumulQté.Qté
    QtéCumul=Val(Qté1)
     
    TANTQUE PAS HEnDehors(Req_CumulQté)
    	HLitSuivant()
    	SAP2=Req_CumulQté.SAP
    	Qté2=Req_CumulQté.Qté	
     
    	SI SAP1=SAP2 ALORS
    		QtéCumul=Val(QtéCumul)+Val(Qté2)
    	SINON
    		QtéCumul=Val(QtéCumul)
    		SAPCumul=Val(SAP1)
     
    		TableAjouteLigne(Table1,SAPCumul,QtéCumul)
    		QtéCumul=Val(Qté2)
    		SAP1=SAP2
    	FIN
    FIN
    Le problème est qu'il ne me note pas le dernier enregistrement cumulé.

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    2 107
    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 : 2 107
    Points : 4 409
    Points
    4 409

    Par défaut

    C'est le thème de la discussion que je t'avais conseillé de lire : Problème avec le dernier enregistrement du tableau

    Ca donne ceci :
    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
    SAP1,SAP2,SAPCumul,Qté1,Qté2,QtéCumul sont des entiers
    HExécuteRequête(Req_CumulQté)
    HLitPremier(Req_CumulQté)
    SAP1=Req_CumulQté.SAP
     
    TANTQUE PAS HEnDehors(Req_CumulQté)
    	SAP2=SAP1 
            QtéCumul = 0
            TANTQUE PAS HEnDehors(Req_CumulQté) _et_ SAP2 = SAP1
    		QtéCumul=QtéCumul+Req_CumulQté.Qté
    	        HLitSuivant (Req_CumulQté) 
                    SAP1=Req_CumulQté.SAP 
    	FIN
            TableAjouteLigne(Table1, SAP2, QtéCumul )
    FIN
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2013
    Messages : 28
    Points : 15
    Points
    15

    Par défaut

    Oui j'avoue que cela marche mieux dans ce sens. J'avais regardé l'autre post mais j'ai été un peu perdu dans le code ...
    J'ai juste modifié un truc car mes champs sont en texte et non numériques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QtéCumul=QtéCumul+Val(Req_CumulQté.Qté)
    Merci à toi et je te prépare un petit tuto ce week

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

Discussions similaires

  1. optimiser le code d'une fonction
    Par yanis97 dans le forum MS SQL-Server
    Réponses: 1
    Dernier message: 15/07/2005, 09h41
  2. Optimiser mon code ASP/HTML
    Par ahage4x4 dans le forum ASP
    Réponses: 7
    Dernier message: 30/05/2005, 11h29
  3. optimiser le code
    Par bibi2607 dans le forum ASP
    Réponses: 3
    Dernier message: 03/02/2005, 15h30
  4. syntaxe et optimisation de codes
    Par elitol dans le forum Langage SQL
    Réponses: 18
    Dernier message: 12/08/2004, 12h54
  5. optimisation du code et var globales
    Par tigrou2405 dans le forum ASP
    Réponses: 2
    Dernier message: 23/01/2004, 11h59

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