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 :

Combinaison HRecherche() et HFiltre()


Sujet :

WinDev

  1. #1
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Combinaison HRecherche() et HFiltre()
    Bonjour,

    j'ai une application constitué des fichiers suivants : Etablissement, chauffeur, carburant, voiture, carburant.

    je saisis un ordre de mission on fait appel à un matricule de voiture, puis un appel à un nom de chauffeur, tous se passe bien.

    le problème c'est que la table memoire reliee au fichier de saisie affiche tous les enregistrements sans tenir compte de filtre suivant l'annee actif qui est un champ reliée par une liaison au fichiers : budget, Etablissement, carburant.
    J'ai uilisé la programmation suivante.
    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
    SI Ouvre(Vision_Voiture,(combo_Voiture)) ALORS
    	ListeAffiche(combo_Voiture,taCourantPremier)
    	SAI_Marque=Voiture.Marque_voiture
    HRecherchePremier(Quota_Service,Annee,Menu.Dossier,hGénérique)
    	SI HTrouve ET PAS H.EnDehors ALORS
    		Quota_Service.Matricule=combo_Voiture
    		HFiltreIdentique(Quota_Service,Matricule,combo_Voiture)
    		HLitPremier(Quota_Service,Matricule,hRespecteFiltre)
    				TANTQUE HTrouve ET PAS H.EnDehors  
    						TableAjoute(Table_service,Quota_Service.IDService+TAB+Table_service.matricule_choff+TAB+Quota_Service.Nom_prenom+TAB+Quota_Service.Matricule+TAB+Quota_Service.Valeur_bon+TAB+Quota_Service.Nbre_bon+TAB+Quota_Service.Total_Bon_Service+TAB+Quota_Service.Date_utilisation+TAB+Quota_Service.Kilo_parcourus+TAB+Quota_Service.Numéro_bon_départ+TAB+Quota_Service.Numéro_bon_arrivé+TAB+Quota_Service.Annee)
    						HLitSuivant(Quota_Service,Matricule)
    				FIN
    FIN	
    SINON
    	Erreur(" Aucun matricule Voiture lui correspond")
    FIN
    merci de m'aider svp

  2. #2
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Bonjour,

    Si je suis ton code, tu te positionne dans un premier temps sur le premier enregistrement du fichier Quota_Service dont la valeur d'une rubrique spécifique Annee est supérieure ou égale à une valeur recherchée Menu.Dossier ( texte tiré de l'aide de HRecherchePremier )
    HRecherchePremier(Quota_Service,Annee,Menu.Dossier,hGénérique)

    Puis ensuite tu fais un filtre sur le numéro de matricule
    HFiltreIdentique(Quota_Service,Matricule,combo_Voiture)

    Ce qui a pour effet de filtre ton fichier QUE sur le matricule, tu ne tiens pas compte de l'année.

    Dans ton cas il faudrait plus utiliser la syntaxe suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Filtre est chaine = "Annee = " + Menu.Dossier + " ET Matricule = '" +  combo_Voiture + "'"
    CléParcours est chaine = HFiltre(Quota_Service,Filtre)
    SI CléParcours <> "" ALORS
    	HLitPremier(Quota_Service, CléParcours)
    	TANTQUE PAS HEnDehors()
    		// traitement ...
    		HLitSuivant(Quota_Service, CléParcours)
    	FIN
    FIN
    A toi de vérifier la syntaxe.

    Bon courage
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    Exacte, ton filtre ne s'effectue que sur le Matricule et ne prend pas en considération l'Année...

    PS : le code de mail.spam ne remplace que la partie du Filtre, et non pas tout le code que tu as écrit ^^

Discussions similaires

  1. [Algo] Trouver un arrangement ou une combinaison d'éléments
    Par Morvan Mikael dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 20/04/2013, 11h46
  2. [WD14] Hrecherche me désactive mon hfiltre
    Par Sergeras dans le forum WinDev
    Réponses: 5
    Dernier message: 28/07/2012, 18h59
  3. [combinatoire] combinaisons de toutes longueur
    Par Toorop dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 16/02/2007, 16h08
  4. Somme de combinaisons
    Par phig dans le forum Mathématiques
    Réponses: 3
    Dernier message: 24/10/2003, 15h03
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

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