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 :

modifier tous les enregistrements correspondants


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 14
    Points : 16
    Points
    16
    Par défaut modifier tous les enregistrements correspondants
    bonjour la famille j'ai ce 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
    19
    20
    HLitPremier(UTILISATEURS)
    TANTQUE PAS HEnDehors(UTILISATEURS)
    	HLitRecherchePremier(Conges,NUM_MATRICULE,UTILISATEURS.NUM_MATRICULE)
    	SI HTrouve(Conges) ALORS
    			SI HExécuteRequête(REQ_Selection)   ALORS
    				//hlitpremier(Conges)
    				POUR TOUT Conges SUR NUM_MATRICULE
    					UTILISATEURS.FLAG_ACTIF = 0	
    				SI PAS HModifie(UTILISATEURS) ALORS
    					Erreur("il y a erreur")
    					RETOUR 	
    				FIN
     
    				FIN	
     
    			FIN	
    			//HLitSuivant(Conges)	
    	FIN 
    		HLitSuivant(UTILISATEURS)
    FIN
    quand on arrive dans utilisateur.flag = 0 cela met juste le premier enregistrement à 0 alors que je dois avoir ceci
    matricule1 0
    matricule2 0
    matricule1 0
    matricule3 0

    pour un matricule ca change juste le premier enregistrement (ici matricule2)
    et je veux que ca change tous les enregistrement meme ceux ayant le meme matricule.
    aidez moi

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496
    Par défaut
    Bonjour,

    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
    HLitPremier(UTILISATEURS)
    TANTQUE PAS HEnDehors(UTILISATEURS)
        HLitRecherchePremier(Conges,NUM_MATRICULE,UTILISATEURS.NUM_MATRICULE)
        SI HTrouve(Conges) ALORS
    SI HExécuteRequête(REQ_Selection) ALORS
    //hlitpremier(Conges)
    // Je ne comprends pas ceci :POUR TOUT Conges SUR NUM_MATRICULE
    UTILISATEURS.FLAG_ACTIF = 0    
    SI PAS HModifie(UTILISATEURS) ALORS
    Erreur("il y a erreur")
    RETOUR 
    FIN
    //FIN    
    FIN    
    //HLitSuivant(Conges)    
    FIN 
    HLitSuivant(UTILISATEURS)
    FIN

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    bonjour la famille j'ai ce 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
    HLitPremier(UTILISATEURS)
    TANTQUE PAS HEnDehors(UTILISATEURS)
    	HLitRecherchePremier(Conges,NUM_MATRICULE,UTILISATEURS.NUM_MATRICULE)
    	SI HTrouve(Conges) ALORS
    			SI HExécuteRequête(REQ_Selection)   ALORS
    				//hlitpremier(Conges)
    					UTILISATEURS.FLAG_ACTIF = 0	
    				SI PAS HModifie(UTILISATEURS) ALORS
    					Erreur("il y a erreur")
    					RETOUR 	
    				FIN
    			FIN	
    			//HLitSuivant(Conges)	
    	FIN 
    		HLitSuivant(UTILISATEURS)
    FIN
    quand on arrive dans utilisateur.flag = 0 cela met juste le premier enregistrement à 0 alors que je dois avoir ceci
    matricule1 0
    matricule2 0
    matricule1 0
    matricule3 0

    pour un matricule ca change juste le premier enregistrement (ici matricule2)
    et je veux que ca change tous les enregistrement meme ceux ayant le meme matricule.
    aidez moi
    voila cest ca

  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
    J'ai édité ton message pour le rendre lisible.

    bonjour la famille j'ai ce 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
     
    HLitPremier(UTILISATEURS)
    TANTQUE PAS HEnDehors(UTILISATEURS)
        HLitRecherchePremier(Conges,NUM_MATRICULE,UTILISATEURS.NUM_MATRICULE)
        SI HTrouve(Conges) ALORS
            SI HExécuteRequête(REQ_Selection) ALORS
                //hlitpremier(Conges)
                UTILISATEURS.FLAG_ACTIF = 0	
                SI PAS HModifie(UTILISATEURS) ALORS
                    Erreur("il y a erreur")
                    RETOUR 
                FIN
            FIN	
            //HLitSuivant(Conges)	
        FIN 
        HLitSuivant(UTILISATEURS)
    FIN
    quand on arrive dans utilisateur.flag = 0 cela met juste le premier enregistrement à 0 alors que je dois avoir ceci
    matricule1 0
    matricule2 0
    matricule1 0
    matricule3 0

    pour un matricule ca change juste le premier enregistrement (ici matricule2)
    et je veux que ca change tous les enregistrement meme ceux ayant le meme matricule.
    aidez moi
    voila cest ca

    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    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
    Tu veux faire quoi ?

    En français, pas en langage informatique.

    Parce que pour l'instant, tu nous dis :
    voici les instructions que j'ai données à Windev, et Windev n'a pas deviné ce que je voulais faire.

    Et si Windev ne devine pas ce que tu veux faire, nous non plus on ne devinera pas.


    Pire que ça. Tu nous dis en fait :
    voici une partie des instructions que j'ai données à Windev, et Windev n'a pas deviné ce que je voulais faire.
    La requête REQ_Selection, Windev sait ce que cette requête contient, nous on ne sait pas.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 14
    Points : 16
    Points
    16
    Par défaut modifier les enregistrements correspondants
    (Nom : forum.JPG
Affichages : 324
Taille : 36,4 Ko

    je veux prendre tous les enregistrements dans congé ayant comme flag_conge = 1 (a savoir qu'on peut avoir deux enregistrements ayant un meme matricule et flag_conge=1) et aller comparer avec la table utilisateur si ce matricule est flagué à 1 dans la table utilisateur, on le met à 0.
    jusque la j'arrive à le faire mais le problème ce que pour deux enregistrements ayant un même matricule et flag_conge = 1 la mise à jour se fait seulement pour le premier enregistrement alors que moi je veux que ca prenne en compte tous les enregistrements correspont a la condition donnée.

    le code est au dessus
    merci de m'aider

  7. #7
    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
    Donc le besoin est :

    je veux prendre tous les enregistrements dans congé ayant comme flag_conge = 1 (a savoir qu'on peut avoir deux enregistrements ayant un meme matricule et flag_conge=1) et aller comparer avec la table utilisateur si ce matricule est flagué à 1 dans la table utilisateur, on le met à 0.
    jusque la j'arrive à le faire mais le problème ce que pour deux enregistrements ayant un même matricule et flag_conge = 1 la mise à jour se fait seulement pour le premier enregistrement alors que moi je veux que ca prenne en compte tous les enregistrements correspont a la condition donnée.

    le code est au dessus
    merci de m'aider


    On va traduire cela en langage Windev :

    je veux prendre tous les enregistrements dans congé ayant comme flag_conge = 1
    Traduction en Windev
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Hlitpremier(conges)
    tantque pas hendehors(conges)
       si conges.flag_conge = 1 alors 
           // Il faut traiter cette ligne de la table congés
     
       fin // Fin de  si conges.flag_conge = 1 alors 
    fin

    Ensuite tu dis : et aller comparer avec la table utilisateur
    En français, tu veux aller rechercher (et pas comparer) la ficher d'identité de cet utilisateur, et lire des informations sur cette ficher d'identité.

    Maintenant qu'on a dit en français ce qu'on veut faire, on peut le traduire en Windev :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Hlitpremier(conges)
    tantque pas hendehors(conges)
       si conges.flag_conge = 1 alors 
           // Il faut traiter cette ligne de la table congés
           hlitrecherche(utilisateurs, num_matricule, conges.num_matricule) 
           si hendehors(utilisateurs) alors
               Erreur ( "Anomalie, il y a un num_matricule xxx qui apparait dans la base des congés, et pas dans la base des utilisateurs")
           sinon
                // Traiter cet utilisateur
     
            fin
       fin // Fin de  si conges.flag_conge = 1 alors 
    fin
    etc, etc
    Voilà,
    J'ai fait 70% de TON travail, c'est beaucoup. Je te laisse faire les 30% restants. Je suis disposé à ce que tu me verses 70% de ton salaire.

    Si tu veux mettre une requête dans la suite de ton traitement, pour que ce soit bien pourri, tu peux. mais normalement, on ne mélange pas des hlitpremier() , hlitRecherche() et des requêtes.
    C'est l'un ou c'est l'autre.

    Ici, j'ai choisi hLitpremier(), hLitrecherche() parce que c'est ce que tu essaies d'utiliser depuis le début.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

Discussions similaires

  1. [AC-2003] Modifier un champ pour tous les enregistrement d'une table
    Par Meph-Dev dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/06/2009, 08h41
  2. état avec tous les enregistrements d'un formulaire
    Par Arkalys dans le forum Access
    Réponses: 9
    Dernier message: 30/09/2005, 11h45
  3. Afficher tous les enregistrements d'une table
    Par bertrand_declerck dans le forum QuickReport
    Réponses: 2
    Dernier message: 08/07/2005, 08h35
  4. faire somme de tous les enregistrements identiques
    Par Keraccess dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/07/2005, 11h03
  5. jointure renvois pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/08/2002, 12h51

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