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 :

[Etat] Basé sur le résultat d'une requête


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 212
    Points : 61
    Points
    61
    Par défaut [Etat] Basé sur le résultat d'une requête
    Bonjour,

    Nouvelle question où je galére pas mal.

    Je désire faire un état à partir d'un filtre, basé sur un champ salarié actif ou non. J'arrive à afficher les résultats mais je ne sais pas comment faire un état selon ma selection à partir d'un select.

    Merci d'avance

    PAscal

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Tu crées un État et tu choisis État sur Requête

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 212
    Points : 61
    Points
    61
    Par défaut
    Merci pour ta réponse,

    Pour ça pas de probléme j'arrive à éditer à partir de ma requête mes salariés actifs avec dans ma requête Salarié Actif à 0 mais je désire à partir d'un selecteur (3 niveaux) Actif - Sortie et tous imprimer uniquement mon choix.

    Pascal

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    il te faut alors peut etre ajouter un parametre.
    ensuite tu peux en fonction de la valeur renvoyée par ta liste deroulante choisir ce que tu vas imprimer.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 212
    Points : 61
    Points
    61
    Par défaut
    Merci Nath pour ta réponse.

    Je vais voir comment faire

    Pascal

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    plus simplement tu peux faire trois requete et trois etat.
    c'est rapide si tu fais des copies et changes qq parametres.
    ensuite tu appelles l'etat correspondant au choix de l'utilisateur!

  7. #7
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 125
    Points : 158
    Points
    158
    Par défaut
    Si ton la rubrique qui détermine si le salarié est actif est un booléen, tu peux utiliser une requête paramétrée.
    ensuite selon ce que tu veux, tu affecte la valeur "vrai", "faux", "null", pour obtenir respectivement les "actif", "non actif" et "tous"

    Pour l'état c'est simple, tu fais un état basé sur ta requête paramètrée, et avant l'impression tu fais par exemple :
    iInitRequeteetat (MonEtat, Vrai)

    bob.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 212
    Points : 61
    Points
    61
    Par défaut
    Merci pour ta réponse,
    Voici ma reqête:
    Afficher tous les NomPrenom, Adresse, CodePostal, Ville, Tel1, Tel2, PortablePerso, PortablePro, HorsEffectif et Photos tels que HorsEffectif est égal à 0 OU HorsEffectif est égal à 1 OU HorsEffectif est nulle . Le résultat est trié selon la valeur de NomPrenom par ordre croissant.

    et 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
     
    SELON MoiMême	
    	CAS 1 : HFiltre(Personnel,IDPersonnel,0,9999999999,"HorsEffectif=0") 
    		//HExécuteRequête("Requête_Liste Salaries", hRequêteDéfaut)
    		iInitRequêteEtat (Etat_Liste_Salaries, 0)
     
    	CAS 2 : HFiltre(Personnel,IDPersonnel,0,9999999999,"HorsEffectif=1")
    		//HExécuteRequête("Requête_Liste Salaries", hRequêteDéfaut)
    		iInitRequêteEtat (Etat_Liste_Salaries, 1)
     
    	CAS 3 : HDésactiveFiltre(Personnel)
    		 iInitRequêteEtat (Etat_Liste_Salaries, Null)
    FIN
     
    //Imprimer le résultat des formations
    //iInitRequêteEtat(ETAT_Liste_Salaries,Vrai)
    iAperçu(100)
    iImprimeEtat(Etat_Liste_Salaries)
    Cela ne fonctionne pas et je galére grave

    Merci

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    il faudrait plutot mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELON MoiMême	
    	CAS"Actif" : HFiltre(Personnel,IDPersonnel,0,9999999999,"HorsEffectif=0") 
    		//HExécuteRequête("Requête_Liste Salaries", hRequêteDéfaut)
    		iInitRequêteEtat (Etat_Liste_Salaries, 0)
     
    	CAS "Inactif" : HFiltre(Personnel,IDPersonnel,0,9999999999,"HorsEffectif=1")
    		//HExécuteRequête("Requête_Liste Salaries", hRequêteDéfaut)
    		iInitRequêteEtat (Etat_Liste_Salaries, 1)
     
    	CAS "Tous" : HDésactiveFiltre(Personnel)
    		 iInitRequêteEtat (Etat_Liste_Salaries, Null)
    FIN
    ou qq chose de ce genre.
    Pour verifier ce que te renvoye ta liste deroulante fait:
    ensuite tu utilises dans ton cas, la valeur que t'a affiché info.

  10. #10
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 125
    Points : 158
    Points
    158
    Par défaut
    Oula, tu mélanges des requêtes et des HFiltres.
    Premièrement, il faudrait vérifier que l'état est bien basé sur la requête (voir description de l'état)

    Si c'est bien sur la requête, le code devrait fonctionner.
    Peux-tu nous afficher le code SQL de la requête stp.

    bob.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 212
    Points : 61
    Points
    61
    Par défaut
    Voici mon code SQL

    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
    SELECT 
      Personnel.NomPrenom AS NomPrenom,  
      Personnel.Adresse AS Adresse,  
      Personnel.CodePostal AS CodePostal,  
      Personnel.Ville AS Ville,  
      Personnel.Tel1 AS Tel1,  
      Personnel.Tel2 AS Tel2,  
      Personnel.PortablePerso AS PortablePerso,  
      Personnel.PortablePro AS PortablePro,  
      Personnel.HorsEffectif AS HorsEffectif,  
      Personnel.Photos AS Photos
    FROM 
      Personnel
    WHERE 
      Personnel.HorsEffectif = 0
      OR  Personnel.HorsEffectif = 1
      OR  Personnel.HorsEffectif IS NULL 
    ORDER BY 
      NomPrenom ASC

  12. #12
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 125
    Points : 158
    Points
    158
    Par défaut
    Tout s'explique le problème viens de la requête. Il faut définir un paramètre dans l'éditeur de requête. Défini la rubrique HorsEffectif "égal à", "un paramètre". Dans le code ca devrait se traduire par quelque chose du style :

    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
    SELECT 
      Personnel.NomPrenom AS NomPrenom,  
      Personnel.Adresse AS Adresse,  
      Personnel.CodePostal AS CodePostal,  
      Personnel.Ville AS Ville,  
      Personnel.Tel1 AS Tel1,  
      Personnel.Tel2 AS Tel2,  
      Personnel.PortablePerso AS PortablePerso,  
      Personnel.PortablePro AS PortablePro,  
      Personnel.HorsEffectif AS HorsEffectif,  
      Personnel.Photos AS Photos
    FROM 
      Personnel
    WHERE 
      Personnel.HorsEffectif = {paramètre}
    ORDER BY 
      NomPrenom ASC
    Il ne faut qu'une seule condition su HorsEffectif.

    Ensuite, ton code devrait fonctionner. Tu peux meme retirer les HFiltres qui ne servent a rien.

    bob.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 212
    Points : 61
    Points
    61
    Par défaut
    Merci pour ta réponse,

    je teste et je te donne la réponse.

    Pascal

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 212
    Points : 61
    Points
    61
    Par défaut
    Encore une fois merci enfin cela marche super bien

    Au départ j'étais passé par des filtres pensant que cela résoudré mon prob, mais effectivement cela ne sert à rien.

    Merci

    PAscal

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

Discussions similaires

  1. Effectuer recherche Multi-critères sur le résultat d'une requête
    Par 30avril1989 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/06/2010, 15h04
  2. Calcul ligne par ligne sur le résultat d'une requête
    Par CanardJM dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/04/2008, 13h06
  3. Effectuer une opération sur le résultat d'une requête
    Par egg3774 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 13/03/2008, 14h29
  4. Requête sur les résultats d'une requête
    Par kiro57 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/10/2007, 17h48
  5. Réponses: 2
    Dernier message: 30/08/2007, 23h03

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