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 :

Hfiltre sur une requete qui comporte un ORDER BY [WD17]


Sujet :

WinDev

  1. #1
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut Hfiltre sur une requete qui comporte un ORDER BY
    Bonjour à tous,

    je rencontre un problème : j'alimente une table (un portefeuille de commande) à l'aide d'une requête REQ_PORTEFEUILLE_CC qui existe dans la section "requêtes" de mes objets, là voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *, (ccl_qte_cde - ccl_qte_livree) AS reste 
    FROM cc, clt AS client, clt AS livraison, ccl, art 
    WHERE cc_id = ccl_cc_id AND ccl_article_id = art_id AND cc_client = client.clt_id AND cc_livraison = livraison.clt_id
    ORDER BY cc_num, ccl_ligne
    Notez la présence du ORDER BY

    Et l'utilisateur doit pouvoir interagir sur la table en la filtrant à l'aide d'une liste de n° de commandes.
    Le code qui procède au filtrage est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    HFiltre(REQ_PORTEFEUILLE_CC, "cc_id=" + LISTE_CC..Valeur)     
    HLitPremier(REQ_PORTEFEUILLE_CC)
    TableAffiche(TABLE_Lignes)
    HDésactiveFiltre(REQ_PORTEFEUILLE_CC)

    Ca a toujours bien marché jusqu'à ce que je m'aperçoive que ma table n'était pas bien triée, je veux qu'elle soit triée par numéro de commande, puis numéro de ligne. Donc j'ajoute le ORDER BY cc_num, ccl_ligne dans ma requête. Depuis là, le hfiltre ne fonctionne plus

    J'ai lu à plusieurs endroit qu'on devait indiquer la clé de parcourt dans un hfiltre, comme ceci :

    HFiltre(REQ_PORTEFEUILLE_CC, REQ_PORTEFEUILLE_CC.cle_de_parcourt, hValMin, hValMax, "cc_id=" + LISTE_CC..Valeur)

    mais ma clé de parcourt à moi est composé de 2 champs, comment faire dans ce cas ?

    Merci pour votre aide précieuse.

    EDIT : si vraiment on ne peut pas faire cohabiter le HFiltre et une requête avec un ORDER BY, alors je n'aurai d'autre choix que d'alimenter ma table par programmation...
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 198
    Points : 185
    Points
    185
    Par défaut
    Je me rappelle avoir eu des problèmes entre HFiltre et ORDER BY, ca fait bien longtemps que je n'utilise plus HFILTRE, et que je n'utilise que des requêtes SQL.

    D'ailleurs, je n'utilise plus autre chose que des requetes SQL, même pour les updates, delete et compagnie, exit les hajoute, hmodifie, etc ...

  3. #3
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Bonjour,

    Je rejoins unkof, dans la programmation et dans l interrogation des bdd il faut hamoniser.

    Je te conseille de passer en sql et de construire ta requete dynamiquement selon les choix de l utilisateur.

    Bon dev
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Je suis moi aussi d'accord avec les autres... exit les hFiltres, vive le SQL !

    Perso j'utilise les requêtes paramétrées... très pratique je trouve.
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  5. #5
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    et ben mer** alors, au départ j'avais pris l'habitude de tout écrire les requêtes, et de faire des HExecute, avec HAjoute sur des tables chargées par programmation, et puis ensuite quelqu'un m'a dit que c'était dommage de pas profiter des "raccourcis" de WinDev...

    Du coup j'ai par endroit des tables chargées par prog parce que je ne pouvais pas faire autrement (requête trop complexe ou pas valide au sein du module de requêtes intégrées de WinDev) et à d'autres endroits, pour des tables plus simples sans trop le liens avec d'autres tables de bd, j'attache la table à une requête et je hfiltre à tout va...

    Bon, aujourd'hui les avis sont unanimes, mais il y a 2 ans en arrière ça me semblait plus partagé.

    En tout cas j'ai ma réponse, merci
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

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

Discussions similaires

  1. [WD17] HFiltre sur requete qui comporte une même table employée 2 fois
    Par droliprane dans le forum WinDev
    Réponses: 16
    Dernier message: 17/01/2013, 14h50
  2. [WD16] HFiltre sur une requete
    Par courdi95 dans le forum WinDev
    Réponses: 10
    Dernier message: 22/08/2011, 08h20
  3. Probleme sur une requete qui ne fonctionne pas
    Par tralala2 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/08/2009, 10h05
  4. Réponses: 3
    Dernier message: 24/05/2007, 19h05
  5. Requete sur une table qui pointe 2 fois sur une autre
    Par Satch dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/01/2006, 08h48

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