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 :

affectation des données d'une fenêtre à des tables [WD15]


Sujet :

WinDev

  1. #1
    Membre régulier Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    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 2014
    Messages : 111
    Points : 88
    Points
    88
    Par défaut affectation des données d'une fenêtre à des tables
    bonjour à tous.
    j'ai fait une application dans laquelle j'ai créé une fenêtre pour faire l'enregistrement dans les differentes tables. c'est à dire que je veux à travers cette fenêtre faire tous mes enregistrement (je pense bien que ça doit être possible)
    mais quand je fait l'enregistrement je n'obtient pas le resultat attendu.
    Si c'est possible j'aimerais que quelqu'un me mette sur le bon chemin.
    MERCI

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Oui c'est possible...
    Le plus simple est de créer des fonctions pour chacun des enregistrements à réaliser et d'appeler ces fonctions lors du clic sur le bouton dédié...

  3. #3
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Citation Envoyé par cobos Voir le message
    ...mais quand je fait l'enregistrement je n'obtient pas le resultat attendu...
    Il faudrait nous dire comment tu procèdes en nous montrant ton code pour pouvoir te dire ce qui ne va pas dans la manière dont tu t'y prends...

  4. #4
    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,

    Je rejoins Laurent30s, il faut nous en dire plus. Le résultat n'est pas celui attendu, on veut bien admettre, mais quel est le résultat attendu et le résultat constaté. Et si possible mais les portions de code.

    Bon dev

  5. #5
    Membre régulier Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    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 2014
    Messages : 111
    Points : 88
    Points
    88
    Par défaut
    bonjour à tous et merci pour vos interventions.
    sachez que je suis un débutant donc je maîtrise pas les fonctions.
    voici un peu le code que j'ai enregistré:
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    HLitRecherchePremier(ENREGISTREMENT,num_enregistrement,SAI_num_enregistrement)
    SI HTrouve(ENREGISTREMENT) ALORS
     
    Info(" Cet enregistrement a été déjà fait, merci de faire un nouveau enregistrement")
    		SINON
    			ENREGISTREMENT.num_enregistrement=SAI_num_enregistrement
    			ENREGISTREMENT.libelle_journal=SAI_libelle_journal
    			ENREGISTREMENT.date_publication=SAI_date_parution
    			EcranVersFichier(FEN_journal)
    			HAjoute(JOURNAL)
    			ENREGISTREMENT.libelle_annonceur=SAI_annonceur
    			EcranVersFichier(FEN_Annonceur1)
    			HAjoute(Annonceur)
    			ENREGISTREMENT.Num_annonce=SAI_num_annonce
    			EcranVersFichier(FEN_annonce)
    			HAjoute(ANNONCE)
    			ENREGISTREMENT.profession=SAI_libelle_emploi
    			ENREGISTREMENT.contenu_emploi=SAI_contenu_emploi
    		ENREGISTREMENT.nbre_poste=SAI_nombre_poste
    		ENREGISTREMENT.condition_travail=SAI_condition_travail
    		EcranVersFichier(FEN_emploi)
    			HAjoute(EMPLOI)
    		DIPLOME.Num_enregistrement=SAI_num_enregistrement
            DIPLOME.intitule=COMBO_diplome1..ValeurAffichée
            EcranVersFichier(FEN_DIPLOME)
            HAjoute(DIPLOME)
            	DIPLOME.Num_enregistrement=SAI_num_enregistrement
                DIPLOME.intitule=COMBO_diplome2..ValeurAffichée
                EcranVersFichier(FEN_DIPLOME)
                HAjoute(DIPLOME)
                DIPLOME.Num_enregistrement=SAI_num_enregistrement
    			DIPLOME.intitule=COMBO_diplome3..ValeurAffichée
    			EcranVersFichier(FEN_DIPLOME)
    			HAjoute(DIPLOME)
    			ENREGISTREMENT.age_min=SAI_age_min
    			ENREGISTREMENT.age_max=SAI_age_maxi
    			ENREGISTREMENT.an_experience_min=SAI_nombre_experience_mini
    			ENREGISTREMENT.an_experience_max=SAI_nombre_experience
    			ENREGISTREMENT.sexe=COMBO_sexe
    			ENREGISTREMENT.autres_connaissances=SAI_autes_connaissance
    			ENREGISTREMENT.Autres_=SAI_autres
    			EcranVersFichier(FEN_profil)
    			HAjoute(PROFIL)
    			QUALITE_HUMAINE.Num_enregistrement=SAI_num_enregistrement
    	    	QUALITE_HUMAINE.libelle=COMBO_qualite1..ValeurAffichée
    	    	EcranVersFichier(FEN_qualite_humaine)
    	    	HAjoute(QUALITE_HUMAINE)
    	    	QUALITE_HUMAINE.Num_enregistrement=SAI_num_enregistrement
    			QUALITE_HUMAINE.libelle=COMBO_qualite2..ValeurAffichée
    			EcranVersFichier(FEN_qualite_humaine)
    			HAjoute(QUALITE_HUMAINE)
    			QUALITE_HUMAINE.Num_enregistrement=SAI_num_enregistrement
    			QUALITE_HUMAINE.libelle=COMBO_qualite3..ValeurAffichée
    			EcranVersFichier(FEN_qualite_humaine)
    			HAjoute(QUALITE_HUMAINE)
    			QUALITE_HUMAINE.Num_enregistrement=SAI_num_enregistrement
    			QUALITE_HUMAINE.libelle=COMBO_qualite4..ValeurAffichée
    			EcranVersFichier(FEN_qualite_humaine)
    			HAjoute(QUALITE_HUMAINE)
     
    		FIN
           HAjoute(ENREGISTREMENT)
    HRAZ()
    RAZ()
    :(

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 451
    Points
    2 451
    Par défaut
    Bonjour,

    Ce n'est pas avec ce code que nous pouvons savoir ce qui vous pose problème.

    A la lecture de votre code, je comprends
    1. que vous affectez directement à des ENREGISTREMENT.diverses_rubriques le résultat de diverses saisies
    2. que vous affectez en même temps le contenu de divers écrans aux rubriques de divers fichiers par l'instruction EcranVersFichier
      (Journal, Annonce, Annonceur, Emploi)
    3. que vous faites de même à trois reprises pour DIPLOME, avec 3 combo, avant de procéder à HAjoute (donc 3 x et 3 enregistrements créés)
    4. que vous affectez des rubriques ENREGISTREMENT relatives au profil et affectez le contenu de l'écran Profil via EcranVersFichier
    5. que vous affectez à 4 reprises une combo relative à QUALITE_HUMAINE, via EcranVersFichier avant de procéder à HAjoute (donc 4 x et 4 enregistrements créés)
    6. que enfin, vous faites un HAjoute de ENREGISTREMENT
    7. que vous terminez par un HRAZ()
    8. et un RAZ


    Ouf

    Tout d'abord, votre HRAZ() ne réinitialise que le dernier fichier utilisé (soit ENREGISTREMENT, dans ce cas précis).
    Si vous souhaitez réinitialiser les buffers des différents fichiers, il faut ajouter soit un HRAZ() après chaque HAjoute, soit faire une série de HRAZ explicites en fin de traitement.

    Il en va de même pour votre RAZ qui ne réinitialise que la dernière fenêtre.

    Sur le plan de l'analyse et de la cohérence des données vous ne devriez pas enregistrer deux fois les mêmes données. La lecture de votre code laisse penser que vous enregistrez toute une série de données dans ENREGISTREMENT après les avoir enregistrées dans Journal, Annonce, Annonceur, Emploi et Profil.
    Savoir ce que vous voulez faire et trouver la solution sera une autre paire de manches.

    Vous avez vraisemblablement un problème avec la fonction EcranVersFichier, puisque vous utilisez 3 fois cette instruction sur DIPLOME puis 4 fois sur QUALITE_HUMAINE, sans repasser par une saisie mais en affectant successivement plusieurs combos à la même rubrique.
    Soit vous avez un enregistrement DIPLOME avec 3 rubriques Diplome1, Diplome2 et Diplome3 et vous devez faire un seul HAjoute en affectant correctement les champs un par un ou en bloc par EcranVersFichier, soit vous n'avez qu'une seule rubrique Diplome par enregistrement DIPLOME et vous ne devez pas repasser à chaque fois par EcranVersFichier.

    Pour rappel, dans la description d'un champ, onglet liaison, vous pouvez lier ce champ à une rubrique d'un fichier de l'analyse.
    Quand cela est fait, l'instruction EcranVersFichier vous permet d'affecter le contenu des champs aux rubriques corresponadntes de l'enregistrement en bloc. et il ne vous reste qu'à faire le HAjoute (sauf petite manipulation éventuelle d'une rubrique qui ne devrait subir un codage particulier avant enregistrement)

    Donc pour être concret, si vous avez 3 combos Diplomes sur votre écran,
    soit votre enregistrement DIPLOME comporte 3 rubrique Diplome1 à 3 et chacune de ces combos est reliée (voir description du champ) à la rubrique correspondante : vous faites un EcranVersFichier puis un HAjoute
    soit votre enregistrement DIPLOME ne comporte qu'une rubrique Diplome et vous faites 3 affectations et HAjoute successifs (et donc vous créez autant d'enregistrements), sans passer par EcranVersFichier, qui ignore quelle combo vous voulez traiter. Dans ce dernier cas, on ne sait d'ailleurs pas comment vous allez identifier les combos par après.

    Je pense que si vous réfléchissez à ce qui précède, les choses vont déjà s'améliorer sur le plan des résultats obtenus.

    A bientôt

    Hemgé

  7. #7
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Je rejoint Hemgé, il y a beaucoup de choses qui sont surprenante dans ce code...

    Je pressens qu'il s'agit d'une fenêtre où il a beau coup de monde

    8 fichiers concernés et certains plusieurs fois
    Journal
    Annonceur
    Annonce
    Emploi
    Diplome (3 x)
    Profil
    Qualite_humaine (4 x)
    Enregistrement

    Je vois que tu fais des EcranVersFichier() à partir de nombreuses fenêtres et certaines plusieurs fois
    FEN_journal
    FEN_Annonceur1
    FEN_annonce
    FEN_emploi
    FEN_DIPLOME (3 x)
    FEN_profil
    FEN_qualite_humaine (4 x)

    Je crois comprendre que tu prévois qu'il peut y avoir 3 diplômes et 4 qualités humaines, mais comment en faisant plusieurs fois des EcranVersFichier() d'une même fenêtre tu peux récupérer des données différentes ???

    Autre chose, j'ai du mal à comprendre ton HIM et ton analyse mais je presens qu'au moins une partie, si ce n'est tous ces EcranVersFichier() suivi de HAjoute() correspondent à des fichiers enfants... Si c'est le cas, tu dois avoir un problème. Comment au moment d'ajouter un enfant tu peut connaître l'ID d'un parent qui n'a pas encore était ajouté ???

    Enfin, le HAjoute(ENREGISTREMENT) et placé après le FIN du SI HTrouve(ENREGISTREMENT). Cela signifie que dans tous les cas, trouvé ou pas trouvé ton code va essayer de faire un ajout au fichier ENREGISTREMENT ???


    En l'état ça reste difficile de se prononcer. L'analyse même succincte (au moins les relations entre fichiers) et une image de l'IHM aiderait bien...

    Ceci dit je pressens :
    - que tes EcranVersFichier() posent problème, particulièrement sur ceux que tu appelles plusieurs fois. Es-tu sur des données que tu récupères et que tu essayes d'ajouter ???
    - que tu essayes d'ajouter des enfants avant le parent. Donc sans l'ID du parent...
    - pour le cas ou l'enregistrement est déjà présent tu fais un HAjoute(ENREGISTREMENT) qui ne devrait pas.

  8. #8
    Membre régulier Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    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 2014
    Messages : 111
    Points : 88
    Points
    88
    Par défaut
    Vous n'avez pas tort les gars je m'en sort très difficilement.
    Mais avec vos critiques j'ai amélioré mon code et xa va maintenant
    encore une fois merci à vous

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

Discussions similaires

  1. Sauvegarde des données d'une fenètre JavaFX
    Par bastfiche dans le forum JavaFX
    Réponses: 0
    Dernier message: 23/02/2014, 19h15
  2. Affichage d'une partie des données d'une table de Base de données
    Par zpico dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 15/05/2012, 11h47
  3. Transmettre des données d'une fenêtre parent vers une fenêtre enfant
    Par ElizaD dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 28/04/2011, 11h56
  4. modifier des données dans une requête multi table
    Par Bluman dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/02/2008, 10h00

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