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 :

Valeur du Paramètre d'une requête pour sélectionner toutes les données avec une valeur [WD17]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 17
    Points
    17
    Par défaut Valeur du Paramètre d'une requête pour sélectionner toutes les données avec une valeur
    Bonjour,
    Je vous remercie toutes et tous pour vos commentaires et explications qui font mon bonheur dans le développement de ma petite application sous Windev.
    Je souhaiterais faire appel à votre savoir afin d'élucider mon problème de paramétrage d'une requête.
    Le paramètre "pEtatModele" devrait me sélectionner toutes les données ou il n'y a pas de valeur dans la rubrique "FICHEMETHODE", si le sélecteur est égal à 1, et toutes les données ou il y a une valeur dans la rubrique "FICHEMETHODE", si le sélecteur est égal à 2. Ma rubrique "FICHEMETHODE" est de type Chaîne.
    Je ne sais si c'est très clair.
    N'hésitez pas à me demander plus de renseignement


    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
    25
    26
    27
    28
    29
    30
    PROCEDURE InitDonnées()
     
    gdDateMin..Jour = 01
    gdDateMin..Mois = 01
    gdDateMin..Année = COMBO_Annee[COMBO_Annee]
     
    gdDateMax..Jour = 31
    gdDateMax..Mois = 12
    gdDateMax..Année = COMBO_Annee[COMBO_Annee]
     
     
    // Paramétrage de la requête
    REQ_Stat_ClientModele.dDateMin = gdDateMin
    REQ_Stat_ClientModele.dDateMax = gdDateMax
     
    SI SEL_ETATMODELE-1 = 0 ALORS
    	// Sélection de tous les modèles
    	REQ_Stat_ClientModele.pEtatModele = Null
    FIN
    SI SEL_ETATMODELE-1 = 1 ALORS
    	// Sélection de tous les modèles sans fiche méthode
    	REQ_Stat_ClientModele.pEtatModele = ""
    FIN
    SI SEL_ETATMODELE-1 = 2 ALORS
    	// Sélection de tous les modèles avec fiche méthode
    	REQ_Stat_ClientModele.pEtatModele = "*"
    FIN
     
    // Exécution de la requête
    HExécuteRequête(REQ_Stat_ClientModele,hRequêteDéfaut)
    Merci beaucoup

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    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 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Le problème ici est que tu nous décris ce que tu veux, tu nous montres ton code, mais à aucun moment tous ne nous dis ce qui ne va pas.
    Nous n'avons pas non plus le code de ta requête.
    Bref, que répondre ?
    En attendant d'en savoir plus, je supposes que ton code ne se comportent pas comme tu le souhaites.
    Donc je vais te donner le premier conseil qui me vient à l'esprit: WinDev propose un débuggeur assez complet, donc pose un point d'arrêt, trace ton code pas à pas en regardant le contenu de tes variables, et le comportement du code.
    Souvent le problème saute aux yeux.

    Tatayo.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 17
    Points
    17
    Par défaut Valeur du Paramètre d'une requête pour sélectionner toutes les données avec une valeur
    Bonjour
    Merci pour votre réponse rapide
    Mon soucis se trouve à la ligne 26 du code précédent : Je souhaiterais que ma requête sélectionne tous les enregistrements dont la rubrique MODELES.ETAMODELE ne soit pas vide.
    Existe t-il une expression ou un caractère générique pour faire cela, parce que "*" ne fonctionne pas?

    Merci

    Code sql : 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
    SELECT 
      CLIENTS.NumClient AS NumClient,  
      CLIENTS.Société AS Société,  
      MODELES.TempsTotal AS TempsTotal,  
      MODELES.DateCrea AS DateCrea,  
      MODELES.DateModif AS DateModif,  
      MODELES.FicheMethode AS FicheMethode
    FROM 
      CLIENTS,  
      MODELES
    WHERE 
        MODELES.NumClient  =  CLIENTS.NumClient
      AND
      (
        MODELES.DateCrea BETWEEN {dDateMin} AND {dDateMax}
        AND  MODELES.FicheMethode = {pEtatModele}
      )
    ORDER BY 
      Société ASC

    Brionfred

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    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 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Le test "MaRubrique='*'" renvoie tous les enregistrements dont MaRubrique vaut *, tout simplement.
    Pour faire une recherche générique, il faut utiliser LIKE, et surtout remplacer l'étoile par un %.

    Tatayo.

  5. #5
    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

    Dans le code

    // Sélection de tous les modèles sans fiche méthode
    REQ_Stat_ClientModele.pEtatModele = ""
    et dans la requête

    AND MODELES.FicheMethode = {pEtatModele}
    Pour cela c'est ok, pour rechercher la sélection des modèles avec fiche, pourquoi ne pas utiliser le contraire signe "=", soit "<>".
    Cela emmène à créer deux requêtes (car je suppose que la requête proposer vient de l'éditeur de requêtes intégrées à WinDev) ou si on veut utiliser une seule requête, créer un nouveau paramètre qui prendra soit "=" soit "<>" selon les cas.

    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

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 133
    Points : 204
    Points
    204
    Par défaut
    si j'ai bien compris ce que tu veux le code de ta requete devrait ressembler à ça
    Code sql : 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
    SELECT 
      CLIENTS.NumClient AS NumClient,  
      CLIENTS.Société AS Société,  
      MODELES.TempsTotal AS TempsTotal,  
      MODELES.DateCrea AS DateCrea,  
      MODELES.DateModif AS DateModif,  
      MODELES.FicheMethode AS FicheMethode
    FROM 
      CLIENTS,  
      MODELES
    WHERE 
      MODELES.NumClient  =  CLIENTS.NumClient
      AND
      MODELES.DateCrea BETWEEN {dDateMin} AND {dDateMax}
      AND (
        ({pEtatModele}=0)
        OR
        (MODELES.FicheMethode = "" AND {pEtatModele}=1)
        OR
        (MODELES.FicheMethode <> "" AND {pEtatModele}=2)
      )
    ORDER BY 
      Société ASC

    et le code à ça
    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
     
    PROCEDURE InitDonnées()
     
    gdDateMin..Jour = 01
    gdDateMin..Mois = 01
    gdDateMin..Année = COMBO_Annee[COMBO_Annee]
     
    gdDateMax..Jour = 31
    gdDateMax..Mois = 12
    gdDateMax..Année = COMBO_Annee[COMBO_Annee]
     
     
    // Paramétrage de la requête
    REQ_Stat_ClientModele.dDateMin = gdDateMin
    REQ_Stat_ClientModele.dDateMax = gdDateMax
     
    // Sélection de tous les modèles sans fiche méthode
    REQ_Stat_ClientModele.pEtatModele = (SEL_ETATMODELE-1)
     
    // Exécution de la requête
    HExécuteRequête(REQ_Stat_ClientModele,hRequêteDéfaut)
    bonne chance

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 17
    Points
    17
    Par défaut Valeur du Paramètre d'une requête pour sélectionner toutes les données avec une valeur
    Merci beaucoup à vous tous
    Je n'ai malheureusement pas réussi à compléter ma requête selon les paramètres de darkWD. Je n'arrive pas à renseigner les expressions
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    AND (
        ({pEtatModele}=0)
        OR
        (MODELES.FicheMethode = "" AND {pEtatModele}=1)
        OR
        (MODELES.FicheMethode <> "" AND {pEtatModele}=2)
    dans l'éditeur de requêtes de windev.
    Mais cela m'a permis de me rappeler que l'on pouvait mettre 2 conditions sur une même rubrique, et cela m'a permis de résoudre mon problème.

    Encore un grand merci à vous.

    Cela dit en passant, étant donné que je suis novice en programmation windev je ne pourrais que me contenter de vos remarques et difficilement apporter ma pierre à l'édifice... Vous êtes au top
    Par contre je touche un peu en AutoCad si cela peu intéresser quelqu'un.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/08/2013, 20h52
  2. Réponses: 5
    Dernier message: 17/07/2013, 08h23
  3. Réponses: 4
    Dernier message: 01/06/2012, 13h49
  4. Réponses: 0
    Dernier message: 01/04/2009, 10h12
  5. Réponses: 4
    Dernier message: 03/05/2007, 20h27

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