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 :

Enregistrer des données dans deux fichiers


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 21
    Points : 24
    Points
    24
    Par défaut Enregistrer des données dans deux fichiers
    Bonjour, je suis débutant alors j'ai une fenêtre sur laquelle il y a des données d'un fichier ELEVE et des données d'un autre fichier INSCRIPTION.
    Voilà ce que j'ai tenté de faire :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    //verification
    SI SAI_Nomel="" ALORS
    	Info("veuillez saisir un nom svp")
    	RepriseSaisie(SAI_Nomel)
    FIN
    SI SAI_net<> 1000 ALORS
    	Info("le montant n'est conforme ")
    	RepriseSaisie(SAI_net)
    FIN
    //eviter les doublons
    HLitPremier(eleve,IDeleve)
    SI HTrouve(eleve) ALORS
    	TANTQUE PAS HEnDehors(eleve)
    		SI eleve.nomel=SAI_Nomel
    			Info("cet eleve existe déjà!")
    			RepriseSaisie(SAI_Nomel)
    		FIN
    			HLitSuivant(eleve)
    		FIN
    	FIN
    //enregistrement
    eleve.nomel=SAI_Nomel
    eleve.prenomel=SAI_Prenomel
    eleve.datnais=SAI_datnais
    eleve.sexel=SAI_Sexel
    eleve.adressel=SAI_Adressel
    eleve.telephonel=SAI_Telephonel
    eleve.mailel=SAI_Mailel
     
    HAjoute(eleve)
    HLitDernier(eleve,IDeleve)
    SI HTrouve(eleve) ALORS
    	TANTQUE HEnDehors(eleve)=Faux
    		inscription.IDinscription=eleve.IDeleve
    	FIN
    	HLitPrécédent(eleve,IDeleve)
    FIN
    inscription.datins=SAI_dat_ins
    inscription.heureins=SAI_heure
    inscription.netpaye=SAI_net
    HAjoute(eleve)
    Info("Bienvenu à la bibliothèque")
    RAZ(GR_eleve)
    Mais cela ne marche pas. Svp aidez-moi.

  2. #2
    Membre régulier
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2013
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 65
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    J'ai vu une chose qui ne fonctionne pas, mais dans l'ensemble ce code n'est pas très orthodoxe

    Précise ton problème...

  3. #3
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    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 : 253
    Points : 668
    Points
    668
    Par défaut
    Il y aura plusieurs chose à dire pour améliorer ton code (pense à la fonction HRaz() notamment), ce qui normal puisque tu débute.

    Toutefois, et je pense que c'est la cause de ton erreur, ton code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    HLitDernier(eleve,IDeleve)
    SI HTrouve(eleve) ALORS
    	TANTQUE HEnDehors(eleve)=Faux
    		inscription.IDinscription=eleve.IDeleve
    	FIN
    	HLitPrécédent(eleve,IDeleve)
    FIN
    équivant à celcui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    si HlitPremier(eleve) ALORS		
    	inscription.IDinscription=eleve.IDeleve
    FIN
    Et je doute que c'est ce que tu souhaite

  4. #4
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    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 : 253
    Points : 668
    Points
    668
    Par défaut
    Pendant que je récupère une sauvegarde de mes sources, je me permet d'indiquer un point à étudier

    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //eviter les doublons
    HLitPremier(eleve,IDeleve)
    SI HTrouve(eleve) ALORS
    	TANTQUE PAS HEnDehors(eleve)
    		SI eleve.nomel=SAI_Nomel
    			Info("cet eleve existe déjà!")
    			RepriseSaisie(SAI_Nomel)
    		FIN
    			HLitSuivant(eleve)
    		FIN
    	FIN
    FIN
    Peut être remplacé par celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //eviter les doublons
    SI HRecherchePremier(eleve, nomel, SAI_Nomel) ALORS
    	Info("Un èleve portant ce nom de famille existe déjà ! Une seule élève par Famille ")
    	RepriseSaisie(SAI_Nomel)
    FIN
    Toutefois, pour cela, il faut déclaré le champ nomel de la table eleve comme clé (sans doublon à priori) au niveau de l'analyse.
    Le temps de traitement s'en trouvera amélioré.

    A noté aussi que si "nomel" contient le nom de famille de l'élève, il risque d'y avoir des problèmes si 2 élèves de la même famille souhaitent s'inscrire en même temps (pour être précis, 2 élèves portant le même nom de famille, on peut il peuvent avoir le même nom sans être de la même famille).
    Trouver une solution à ce genre de problème est une part importante de notre métier car la solution est rarement facile.
    Dans ton exemple, que faire ?
    - Avoir un numéro unique par élève généré lors de l'enregistrement ==> dans ce cas, rien n'empêche un même élève de s'inscrire 2 fois
    - Partir d'un fichier élève fourni par l'école. Dans ce cas, il n'y aurait plus de problème sur la création d'élève (mais l'école peut-elle fournir ce fichier)
    - Tester l'unicité non pas uniquement sur le nom de famille mais rajouter le prénom, la date de naissance, l'adresse (mais là encore il peut s'agir de 2 personnes distincts)
    - En cas de doublon sur le nom de famille, proposer un écran à l'opérateur pour lui indiquer les élève portant ce nom (à lui alors de savoir si l'élève est celui présent dans la base ou s'il doit créer un autre élève)

  5. #5
    Membre actif
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Points : 297
    Points
    297
    Par défaut
    Bonjour,

    Si ton problème est que les données du fichier 'inscription' ne sont pas insérer, ça me semble tout à fait normal au vu de ton code.
    Après avoir fait les modifications, il te faut un HAjoute(inscription) et pas un HAjoute(eleve), ou alors il faut que l'on m'explique.

    Maintenant, je te conseil quand même fortement de faire le cours d'autoformation, car j'ai l'impression que tu ne comprend pas ce que tu fais (ce que tu code tout du moins).

    Bonne continuation.

    P.S. : Inutile d'ouvrir un autre post pour crier ce que tu veux. Tu peux toi aussi continuer dans celui-ci.
    L’aléatoire n’existe pas en informatique, c’est juste un moyen de dire que l’on a pas encore compris.

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 64
    Points
    64
    Par défaut
    Bonjour
    Si ton problème n'est pas réglé, je te propose le code suivant:
    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
    31
    32
    33
    verification
    SI SAI_Nomel="" ALORS
    	Info("veuillez saisir un nom svp")
    	RepriseSaisie(SAI_Nomel)
    FIN
    SI SAI_net<> 1000 ALORS
    	Info("le montant n'est conforme ")
    	RepriseSaisie(SAI_net)
    FIN
    //eviter les doublons
    HLitRecherche(eleve,IDeleve,SAI_Nomel)
    SI HTrouve(eleve) ALORS
    Info("cet eleve existe déjà!")
    			RepriseSaisie(SAI_Nomel)
    FIN
     
    //enregistrement
    eleve.nomel=SAI_Nomel
    eleve.prenomel=SAI_Prenomel
    eleve.datnais=SAI_datnais
    eleve.sexel=SAI_Sexel
    eleve.adressel=SAI_Adressel
    eleve.telephonel=SAI_Telephonel
    eleve.mailel=SAI_Mailel
     
    HAjoute(eleve)
     
    inscription.IdInscription=SAI_IDinscription
    inscription.datins=SAI_dat_ins
    inscription.heureins=SAI_heure
    inscription.netpaye=SAI_net
    HAjoute(inscription)
    Info("Bienvenu à la bibliothèque")
    Et vous faites la différence entre IDeleve et IDinscription
    Merci

  7. #7
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 283
    Points : 263
    Points
    263
    Par défaut
    @Gbedjanhoungbo

    Corrigez-moi quelqu'un, mais je ne suis par sûr que tu trouvera un élève avec ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //eviter les doublons
    HLitRecherche(eleve,IDeleve,SAI_Nomel)
    SI HTrouve(eleve) ALORS
    Info("cet eleve existe déjà!")
    			RepriseSaisie(SAI_Nomel)
    FIN
    Tu recherche dans ton rubrique IDÉlève une valeur de type chaine qui correspond au nom de famille de l'élève..

    Un code qui, selon moi, fait beaucoup de sens

    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
    31
    32
    33
    34
    35
    36
    37
    38
     
    SI SAI_Nomel= "" ALORS
    	Info("Veuillez saisir votre nom.")
    	RepriseSaisie(SAI_Nomel)
    FIN
     
    SI SAI_net<> 1000 ALORS
    	Info("Le montant entré n'est pas conforme.")
    	RepriseSaisie(SAI_net)
    FIN
     
    //Éviter les doublons 
    POUR TOUT eleve	
    	SI sai_nomel = eleve.nomel ALORS
    		Info("Cet élève existe déja!")
    		RETOUR
    	FIN
    FIN
     
    //On crée l'enregistrement
    HRAZ(eleve)
    eleve.nomel=SAI_Nomel
    eleve.prenomel=SAI_Prenomel
    eleve.datnais=SAI_datnais
    eleve.sexel=SAI_Sexel
    eleve.adressel=SAI_Adressel
    eleve.telephonel=SAI_Telephonel
    eleve.mailel=SAI_Mailel
    HAjoute(eleve)
     
    HRAZ(inscription)
    inscription.IdInscription=SAI_IDinscription
    inscription.datins=SAI_dat_ins
    inscription.heureins=SAI_heure
    inscription.netpaye=SAI_net
    HAjoute(inscription)
     
    Info("Bienvenu à la bibliothèque")
    Bon dev,

Discussions similaires

  1. Enregistrer des donnée dans un fichier de donnée
    Par developppez dans le forum WinDev
    Réponses: 2
    Dernier message: 29/07/2010, 17h33
  2. Réponses: 6
    Dernier message: 05/02/2008, 22h52
  3. Enregistrer des données dans un fichier externe
    Par TarZan78 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 19/11/2007, 09h52
  4. [File] enregistrer des données dans un fichier
    Par jontleman dans le forum Windows Forms
    Réponses: 8
    Dernier message: 23/08/2007, 13h08
  5. [VB6]enregistrer des données dans un fichier
    Par tchinette42 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 19/04/2006, 18h55

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