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 :

Filtrer sur une clé mais parcourir sur une autre [WD20]


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Filtrer sur une clé mais parcourir sur une autre
    Bonjour à tous,

    je suis débutant en windev.

    Je bloque un peu sur le probleme suivant.

    J'ai un fichier hyperfile avec des rubriques Numéro et Indice.

    Pour une valeur numéro peut correspondre plusieurs indices.

    Je voudrais pouvoir parcourir uniquement les enregistrements correspondant à un numéro donné mais dans l'ordre de leur indice et non pas de leur enregistrement.

    J'y suis depuis ce matin mais je ne trouve rien. Je suis un peur perdu entre les commandes hfiltre, hlitpremier et hlitrecherchepremier.

    Si quelqu'un à une combine je suis preneur!

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    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 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Je n'ai jamais été très fan des ordres h*.
    Ici tu peux utiliser une boucle POUR TOUT, en précisant le critère de sélection (AVEC) et l'ordre de tri (SUR).
    Après suivant le besoin une requête SQL fera très bien l'affaire.

    Tatayo.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 237
    Points : 305
    Points
    305
    Par défaut
    Bonjour,
    Les clés composées sont faites pour ça non ?

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    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 053
    Points : 9 393
    Points
    9 393
    Par défaut
    La documentationdit :
    Après l'exécution de la fonction HFiltre, le parcours du fichier de données doit obligatoirement être effectué sur la rubrique renvoyée par la fonction HFiltre. Si une autre rubrique est utilisée pour le parcours du fichier de données, le filtre ne sera pas pris en compte.
    Ca veut dire quoi ?
    Ca veut dire que si on fait hFiltre en se basant sur la colonne Numéro, les hLit qui suivent devront se faire sur cette même clé.

    2 solutions pour ça :
    *1* la piste de tatayo, une requête SQL : select * from monfichier where numero = xxx order by indice.
    Peut être que l'autre piste de Tatayo ( utiliser Pour TOUT ...) va marcher, mais je doute.

    *2* Une clé composée.
    Dans l'analyse, tu crées une clé composée basée sur Numéro Puis indice (dans cet ordre), tu appelles cette clé composé k_numero_indice.

    Dans ton filtre tu utilises cette clé ( borne mini = hconstruitValCle ( xxx, hvalmin) , borne maxi = hconstruitValCle ( xxx, hvalmax) )
    Et dans le parcours du fichier, tu utilises également cette clé.

    Ma préconisation : Il FAUT utiliser des clés composées dès que ça correspond à une logique. C'est souvent beaucoup plus pertinent d'avoir une clé composée sur colonne1+colonne2 qu'une clé sur colonne1 et une clé sur colonne2.
    Et quelque soit la solution adoptée ensuite (hfiltre, ou instruction SQL), la clé composée sera efficace.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci à tous!

    Je vais essayer tout ca.

    Je vous tiens au courant.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Hello,

    La solution du filtre sur la clé composée marche parfaitement!

    Merci beaucoup

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

Discussions similaires

  1. Filtrer sur un autre classeur
    Par Lordvoldman dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/09/2018, 14h37
  2. Réponses: 0
    Dernier message: 03/04/2008, 15h14
  3. Filtrer sur une valeur d'un attribut XPATH
    Par jbnoel dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 31/01/2008, 10h00
  4. [HTML] faire lien d'une page sur une autre mais a un endroit précis
    Par anies34 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 30/11/2007, 23h32
  5. Lancer un programme, mais sur une autre machine
    Par GOUGOU1 dans le forum Réseau
    Réponses: 12
    Dernier message: 08/12/2002, 20h36

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