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 :

Problème Parcours de Liste [WD18]


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 46
    Points : 25
    Points
    25
    Par défaut Problème Parcours de Liste
    Bonjour,

    Je rencontre un problème pour parcourir mes listes. Je possède une fenêtre avec deux Combos :

    - Une qui contient toutes les références de machine (ex : 66556, 66557, ...) ainsi que leur type (ex : Perceuse, ...)

    - Une qui contient que le type (ex: Perceuse, ...)

    Ensuite j'ai mes deux liste qui s'initialisent avec les références de machine en fonction de mes choix dans les combos.

    Ex : je connais directement la ref de ma machine je la sélectionne dans la première combo et elle se met dans mes deux listes OU BIEN je ne connais pas la ref et je sélectionne un type et la dans mes deux listes se mettent TOUTES les références en fonction du type.

    J'ai bien réussi à faire cela mon problème maintenant, est que je ne puisse pas remettre les mêmes références dans mes listes.

    Voici mon code :
    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
    
    SI PAS ExécuteRequête(REQ_Liste_TypeMachine,hRequêteDéfaut,COMBO_Liste_TypeMachine..Valeur) ALORS
    	Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
    	RETOUR
    FIN
    	
    	HLitPremier(REQ_Liste_TypeMachine)
    	TANTQUE PAS HEnDehors(REQ_Liste_TypeMachine)
    		POUR TOUTE LIGNE DE LISTE_Machine_Pb
    			SI ChaîneCompare(LISTE_Machine_Pb..ValeurAffichée,REQ_Liste_TypeMachine.IDMachine) <> 0 ALORS
    				// Ajoute la référence de la machine dans la liste des machines concernées par le problème
    				ListeAjoute(LISTE_Machine_Pb,REQ_Liste_TypeMachine.IDMachine)
    			FIN
    		FIN
    		
    		POUR TOUTE LIGNE DE LISTE_Machine_Pb_Resoudre	
    			SI ChaîneCompare(LISTE_Machine_Pb_Resoudre..ValeurAffichée,REQ_Liste_TypeMachine.IDMachine) <> 0 ALORS
    				// Ajoute la référence de la machine dans la liste des machines concernées par le problème et encore à résoudre
    				ListeAjoute(LISTE_Machine_Pb_Resoudre,REQ_Liste_TypeMachine.IDMachine)
    			FIN
    		FIN
    		HLitSuivant(REQ_Liste_TypeMachine)
    	FIN
    
    J'ai rajouté les POUR TOUTE LIGNE DE afin de vérifier si la valeur n'est pas déjà présente mais après test je ne passe jamais dedans. Par contre le TANTQUE est correct. Aussi si vous avez une idée d'optimisation car cela est déjà très lourd. (En rouge ce qui ne fonctionne pas)

    Merci d'avance !

    EDIT :

    Voici un screen pour plus de clarté


  2. #2
    Membre actif
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Points : 297
    Points
    297
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser la fonction ListeCherche() à la place de tes boucles internes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SI ListeCherche(LISTE_Machine_Pb, REQ_Liste_TypeMachine.IDMachine, Vrai) = -1 ALORS
        // Ajoute la référence de la machine dans la liste des machines concernées par le problème
        ListeAjoute(LISTE_Machine_Pb,REQ_Liste_TypeMachine.IDMachine)
    FIN
    Si j'ai bien compris le contexte, ce petit code devrait remplacer ta première boucle POUR TOUTE.

    A adapter bien-sur suivant les besoins.

    Bonne continuation.
    L’aléatoire n’existe pas en informatique, c’est juste un moyen de dire que l’on a pas encore compris.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    Merci cela fonctionne, je m'étais mal renseigné sur cette fonction ListeCherche() qui en effet me facilite la vie !

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

Discussions similaires

  1. Parcours de listes, problème d'algo
    Par RTK45 dans le forum Général Python
    Réponses: 9
    Dernier message: 24/02/2012, 14h16
  2. Problème parcours liste Array ?
    Par Baboulinet_ dans le forum Général Java
    Réponses: 9
    Dernier message: 05/10/2011, 09h23
  3. Problème incompréhensible! Fichier + liste
    Par djsbens dans le forum C
    Réponses: 2
    Dernier message: 07/12/2005, 00h30
  4. [STL]Problème itérateur avec list
    Par Fiquet dans le forum SL & STL
    Réponses: 7
    Dernier message: 03/10/2005, 17h54

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