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 :

Filtre sur état [WD17]


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 91
    Points
    91
    Par défaut Filtre sur état
    Bonjour à tous!
    Une fois de plus, je reviens vers vous pour un problème que je n'arrive pas à régler (certainement simple mais . . . ) :
    je souhaite afficher à partir d'un état tous mes enregistrement contenant une condition sur une rubrique.
    Rubrique: TECHNICIEN
    gsTriParTech : variable initialisée à partir d'un champ SAI

    -OUVERTURE DE L ETAT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HLitRecherchePremier(sdFD_BonCommande,"Technicien",gsTriParTech)
    -LECTURE DE DONNES DE L ETAT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SI HEnDehors() = Vrai ALORS	
    	RENVOYER Faux
    SINON	
    	RENVOYER Vrai
    FIN
    -AVANT IMPRESSION DU CORPS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LectureEnregistrement()
    -APRES IMPRESSION DU CORPS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TANTQUE HTrouve=Vrai
    HLitSuivant(sdFD_BonCommande,"Technicien")
    FIN
     
    SI HEnDehors()=Faux ALORS
    	iTerminePage()
    FIN
    La visu de l'état montre uniquement que le premier enregistrement correspondant à la condition!
    Je tourne, je vire mais malgré toute la doc de PCSOFT, je n'arrive pas à avoir tout mes enregistrement!
    Je n'utilise pas de requête dans mon état car tous les fichiers FIC (74) sont désignés par une variable à l'initialisation en fonction de l'utilisateur.
    Cela va certainement vous paraître simple à réaliser, mais j'avoue que je ne maîtrise pas la logique de l’état à source programmées!!

    Si je puis encore abuser de votre savoir . . .
    J'ai ensuite un état à réaliser dans le même style mais avec 2 conditions distinctes (Rub1=variable 1 et Rub2=variable 2). Sans requête, ce n'est pas évident...
    Merci de vos conseils!!!

    Je rajoute que j'ai voulu aussi utiliser HFiltre dans l'état:
    -FILTRE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CléParcours est une chaîne
     
    CléParcours = HFiltre(sdFD_BonCommande, ""Technicien=" + gsTriParTech + "'")
    HLitPremier(sdFD_BonCommande, CléParcours)
    TANTQUE HEnDehors() = Faux
     
    	HLitSuivant(sdFD_BonCommande, CléParcours)
    FIN
     
    HDésactiveFiltre(sdFD_BonCommande)
    . . . mais a aucun moment le passe par la routine du filtre ?????

    J’espère être assez clair.

    Merci de vos retours d'info!

  2. #2
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 257
    Points : 670
    Points
    670
    Par défaut
    Personnellement, ce que je fais dans ces cas là, ce limite à cela :
    OUVERTURE DE L ETAT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HLitRecherchePremier(sdFD_BonCommande,"Technicien",gsTriParTech)
    -LECTURE DE DONNES DE L ETAT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SI PAS HTROUVE(sdFD_BonCommande) ALORS	// on test HTrouve et non HEnDehors
    	RENVOYER Faux // Ce renvoyer Faux met fin à l'impression de l'état
    SINON
     
    	MonChampEtat1 = sdFD_BonCommande.Technicien
    	MonChampEtat2 = sdFD_BonCommande.Technicien
     
    	// Passage à l'enregistrement suivant
    	HLitSuivant(sdFD_BonCommande,"Technicien")
    	RENVOYER Vrai // Ce renvoyer Vrai fait qu'1 ligne de corps va être imprimé puis retour dans la lecture des données
    	// Comme je fais le HLitSuivant ici, si je manipule les données de sdFD_BonCommande dans le corps, j'aurais les informations de l'enregistrement suivant
    	// On peut d'ailleurs imaginer avoir le HlitSuivant dans le Corps 
    FIN
    S'il faut rajouter un test supplémentaire sans faire de requête (pourquoi d'ailleurs, vous devez pouvoir utiliser un HExceuteRequeteSQL non ?)
    je fais ce genre de code :

    -LECTURE DE DONNES DE L ETAT
    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
    SI PAS HTROUVE(sdFD_BonCommande) ALORS	// on test HTrouve et non HEnDehors
    	RENVOYER Faux // Ce renvoyer Faux met fin à l'impression de l'état
    SINON
            TANTQUE HTROUVE(sdFD_BonCommande) _et_ MonDeuxiemeTestEstFaux
    		HLitSuivant(sdFD_BonCommande,"Technicien")
            FIN
     
            SI PAS HTROUVE(sdFD_BonCommande) 
                    RENVOYER FAUX
            SINON
            	MonChampEtat1 = sdFD_BonCommande.Technicien
    	        MonChampEtat2 = sdFD_BonCommande.Technicien
     
            	// Passage à l'enregistrement suivant
            	HLitSuivant(sdFD_BonCommande,"Technicien")
    	        RENVOYER Vrai // Ce renvoyer Vrai fait qu'1 ligne de corps va être imprimé puis retour dans la lecture des données
            FIN
    FIN

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 91
    Points
    91
    Par défaut
    Merci Narwe de ton retour!
    J'ai essayé ton code . . . mais il ne fonctionnait pas!
    J'ai épluché une par une les instructions en faisant des déplacement de code dans les routines de l'état.
    Je me suis arraché les cheveux même (le peu qu'il me reste!).
    .
    .
    Tout ça pour m'apercevoir à force que je n'avais pas donné à l'état la source des données imprimées!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! De quoi ce balancait des giffles!!!!!!!!

    Bon le problème est résolu!!! Quel problème?????
    Encore merci à toi Narwé!!!

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

Discussions similaires

  1. Filtre sur état access
    Par nono911 dans le forum IHM
    Réponses: 8
    Dernier message: 11/04/2013, 21h07
  2. Problème de filtre sur état ?
    Par clickandgo dans le forum IHM
    Réponses: 2
    Dernier message: 25/04/2012, 23h46
  3. Filtre sur un état
    Par tibogaet dans le forum IHM
    Réponses: 6
    Dernier message: 14/02/2008, 17h21
  4. filtre sur état comme excel
    Par choubak dans le forum IHM
    Réponses: 4
    Dernier message: 09/07/2007, 09h03
  5. Réponses: 3
    Dernier message: 27/09/2006, 13h11

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