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 :

Problème d'enregistrement d'une Liste lié à un fichier de donnée


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut Problème d'enregistrement d'une Liste lié à un fichier de donnée
    Bonjour,

    J'ai une fenêtre contenant des champs lié à un fichier de donné, parmi les champs existe une liste, cette listeB est rempli à partir d'une autre listeA suite à un clic sur un bouton, la liste A est alimenté à partir d'une requête sur un autre fichier de donnée, lorsque j'enregistre les données insérer dans ces champs lié, tout s'insère sauf ceux de la listeB, j'ai juste la valeur -1, quelque soit ce que contient ma liste, voici les codes:

    Ceci est peut être du au fait que le champ liste dans mon fichier de donnée est de type entier, alors que le contenu de ma listeB qui se trouve sur la fenêtre d'enregistrement des données est de type chaîne j'y comprend rien, aidez moi svp

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Citation Envoyé par developppez Voir le message
    voici les codes:

    Ah bah en effet si tu mets ça dans ton code

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par sphynxounet Voir le message
    Ah bah en effet si tu mets ça dans ton code
    Bonjour,
    Je m'excuse, voici le code du bouton d'ajout des éléments de la listeA vers la listeB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SI ListeCherche(LISTE_Destinatairerecl,LISTE_Utilisateur..ValeurAffichée)=-1 ALORS
    		ListeAjoute(LISTE_Destinatairerecl,LISTE_Utilisateur..ValeurMémorisée)
     
     
    	FIN

  4. #4
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour
    que contient
    ListeAjoute(LISTE_Destinatairerecl,LISTE_Utilisateur..ValeurMémorisée)
    ?
    Parce que si rien ne s'ajoute c'est peut être parceque cette valeur est nulle

    Gancau

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Si tu as -1 c'est, tu n'as pas de valeur mémorisée et la valeur par défaut de cette propriété doit être -1.

    De plus je suis pas sur de l'utilisation de LISTE_Utilisateur..ValeurAffichée et LISTE_Utilisateur..ValeurMémorisée. J'ai toujours eu du mal à savoir à quel moment surtout la valeur était mémorisée.

    Si jamais tu veux tester la valeur à la ligne sélectionnée de LISTE_Utilisateur tu peux faire LISTE_Utilisateur[LISTE_Utilisateur ].

  6. #6
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    la valeur mémorisé contient idutilisateur la clé de la table, et la requête séléctionne les id, nom et prénom, la valeur affiché est prenom et la valeur de parcour c'est automatique, tout s'enregistre sauf le champs liste qui normalement enregistre les id des user séléctionné enregistre seulement -1, alors que dans l'interface, l'ajout est effectué aidez moi svp, je suis bloqué

    ce que je veux faire c'est l'insertion d'un ou plusieurs utilisateurs, dans un champs de fichier de donnée qui est de type liste, comme dans cette image, alors svp aidez moi à retrouver le code pour le bouton >> et << , ainsi que ce que je doit mettre dans ma requête, valeurs mémorisé...
    Merci.
    Images attachées Images attachées  

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Citation Envoyé par developppez Voir le message
    tout s'enregistre sauf le champs liste qui normalement enregistre les id des user séléctionné
    quel champ liste ?
    Comment tu sélectionnes tes users ?
    Quand tu parles d'enregistrer c'est dans ton fichier de l'analyse ?

    Citation Envoyé par developppez Voir le message
    ce que je veux faire c'est l'insertion d'un ou plusieurs utilisateurs, dans un champs de fichier de donnée qui est de type liste, comme dans cette image, alors svp aidez moi à retrouver le code pour le bouton >> et << , ainsi que ce que je doit mettre dans ma requête, valeurs mémorisé...
    Merci.
    Je suppose que >> signifie que tu enlèves l'utilisateur de la liste de gauche pour le mettre à droite et << le contraire ?

  8. #8
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par sphynxounet Voir le message
    quel champ liste ?
    Comment tu sélectionnes tes users ?
    Quand tu parles d'enregistrer c'est dans ton fichier de l'analyse ?



    Je suppose que >> signifie que tu enlèves l'utilisateur de la liste de gauche pour le mettre à droite et << le contraire ?
    Je m'explique, l'interface c'est pour gérer les réclamation, alors, j'ai une liste_utilisateur contenant tout les utilisateurs, donc cette première liste est alimenté à partir d'une requête sur le fichier de donnée utilisateur.
    Ensuite, j'ai un autre champs liste_destinatairereclamation, qui est un champs lié au fichier de donné: Reclamation, pour y mettre le ou les noms des utilisateurs concerné par cette réclamation. sur l'interface, les bouton >> : qui sert à ajouter un par un les nom d'utilisateur de la liste des utilisateurs vers la liste des destinataire reclamation s'ajoute, de même pour le bouton <<, supprimer un utilisateur ... mais lorsque j'essay d'enregistrer toute la réclamation saisie de cette interface à travers un autre bouton enregistrer, tout s'enregistre dans le fichier de l'analyse ou donnée ..Réclamation, sauf la liste des utilisateurs concernée par cette réclamation qui correspond au champs: destinataire-rec du fichier de l'analyse ou de donnée RECLAMATION, ce champs là, prend toujours la valeurs -1.
    J'espère que c'est claire maintenant. je m'excuse parce que je n'étais pas assez clair
    Images attachées Images attachées      

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Citation Envoyé par developppez Voir le message
    J'espère que c'est claire maintenant.
    Mon cerveau c'est un diesel alors faut pas trop lui en demander.

    En fait si j'ai bien compris tu as un fichier RECLAMATION et tu veux enregistrer quelque chose dans la rubrique destinataire-rec (rubrique c'est le nom des colonnes des fichiers. c'est propre à windev pour éviter de confondre avec les champs dans l'interface).

    J'ai pas très bien compris quel type de donnée tu enregistre dans cette rubrique et comment. Ton fichier RECLAMATION il a qu'une seule rubrique ? Ce fichier c'est juste une copie de la liste LISTE_Destinatairerecl ?

    T'as pensé à faire un EcranversFichier puisque ta liste LISTE_Destinatairerecl est liée à ton fichier RECLAMATION ?

    Edit : ok je comprends mieux avec les screen, par contre faut que je réfléchisse encore

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Ok j'ai enfin compris ce que tu veux mais c'est je pense pas possible :

    D'après l'aide en ligne ICI : "Lorsqu'une rubrique est associée à une liste, le contenu de la liste est le même pour tous les enregistrements du fichier."

    En gros tu peux pas avoir des listes de données différentes dans ta rubrique.

    Ça pourrait être pratique mais un brin bordélique pour la lisibilité.

    Va falloir que tu créés un fichier qui lie le fichier utilisateurs au fichier réclamations : tu créées un fichier qui pour chaque enregistrement stocke l'ID de la réclamation et l'ID de l'utilisateur. Tu auras une ou plusieurs lignes avec le même ID réclamation et à chaque fois tu auras un ID utilisateur correspondant à ceux qui sont dans LISTE_Destinatairerecl.

  11. #11
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par sphynxounet Voir le message
    Mon cerveau c'est un diesel alors faut pas trop lui en demander.

    En fait si j'ai bien compris tu as un fichier RECLAMATION et tu veux enregistrer quelque chose dans la rubrique destinataire-rec (rubrique c'est le nom des colonnes des fichiers. c'est propre à windev pour éviter de confondre avec les champs dans l'interface).

    J'ai pas très bien compris quel type de donnée tu enregistre dans cette rubrique et comment. Ton fichier RECLAMATION il a qu'une seule rubrique ? Ce fichier c'est juste une copie de la liste LISTE_Destinatairerecl ?

    T'as pensé à faire un EcranversFichier puisque ta liste LISTE_Destinatairerecl est liée à ton fichier RECLAMATION ?

    Edit : ok je comprends mieux avec les screen, par contre faut que je réfléchisse encore
    C'est ça, j'ai fait un fichier RECLAMATION et je veux y enregistrer plusieurs choses parmis les quelles, une rubrique: DESTINATAIRE_RECL.
    En ce qui concerne le type de donnée, j'ai un peut de confusion, , mais j'essaye de m'expliquer: le type des données insérer, est numériques: c'est à dire le numéro identifiant de l'utilisateur séléctionné dans la première liste des utilisateurs, mais la rubrique DESTINATAIRE_RECL où je veux insérer et ça ne fonctionne pas, c'est toujours à -1, est de type: liste.
    Bien évidement mon fichier RECLAMATION contient plusieurs rubriques, et ce n'est pas juste une copie de la liste DESTINATAIRE_RECL.
    Bien sure que j'ai pensé à faire: EcranVersFichier , comme indiqué dans les imprimes écran.
    J'espére que j'étai clair et que j'ai répondu convenablement à toutes les questions.
    Merci, à toi.

  12. #12
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Ok, merci, j'ai déja un fichier qui fait la liaison entre le fichier UTILISATEUR et le fichier RECLAMATION, et je crois que je doit l'utiliser maintenant, mais reste à savoir, comment faire.... Merci

  13. #13
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Comment faire ? Je ne trouve pas comment le faire, qu'est ce que je met dans le code du bouton >> et du bouton << . pour qu'a chaque fois qu'un intervenant est sélectionné, il s'ajoute à la table traitement_réclamation....
    Aidez moi svp!
    Images attachées Images attachées  

  14. #14
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 970
    Points : 766
    Points
    766
    Par défaut
    Bonjour,

    Pour enlever un élément d'une liste, vous pouvez vous inspirer de ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    POUR i = 1 A ListeOccurrence(Liste.....)
     
    	ListeSupprime(Liste.....)
    FIN
    Ensuite, pour l'inverse, regardez l'aide à 'ListeAjoute'

    Bon après midi

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Je préviens c'est une solution peut-être un peu lourde qui n'utilise pas forcément toutes les astuces de windev.

    Dans le bouton >> y a pas grand chose à mettre je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Si ListeCherche(LISTE_Destinatairerecl,LISTE_Utilisateur[LISTE_Utilisateur ])=-1 ALORS
     
    Listeajoute(LISTE_Destinatairerecl, LISTE_Utilisateur[LISTE_Utilisateur ])
    FIN
    Avec ça tu auras le nom de ton utilisateur dans ta LISTE_Destinatairerecl

    Ensuite il te faudra un bouton ou un traitement pour enregistrer dans ton fichier traitement_réclamation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    POUR TOUTE LIGNE DE LISTE_Destinatairerecl
        ID_Utilisateur = Tablecherche (Utilisateur, LISTE_Destinatairerecl..valeur) 
     
        SI ID_Utilisateur > -1 ALORS
     
            TableAjouteLigne (traitement_réclamation, ID_RECLAMATION, ID_Utilisateur)
     
        SINON
            Info("Utilisateur introuvable")
        FIN
    FIN
    ID_réclamation étant le numéro de l'enregistrement de la réclamation en cours.

    Donc normalement dans ton fichier traitement_réclamation tu devrais te retrouver avec 3 colonnes : l'ID de l'enregistrement du fichier (ça c'est normal), l'ID de la réclamation et l'ID de l'utilisateur.

  16. #16
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    J'ai pensé à ça: créer un tableau qui prend les idintervenants puis les insérer dans le fichier de donnée, seulement, je ne trouve pas le idreclamation... je me sent perdu.. aider moi à trouver une solution svp.
    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
     
    EcranVersFichier(saisierec)
    HAjoute(Reclamation)
    HAjoute(Traitementrecl)
    n est un entier
    j est un entier
    n=LISTE_userselected..Occurrence
     monTab est un tableau de n entiers 
     POUR j=1 A n
     	monTab[j]=LISTE_userselected[j]..Valeur
     //requête d'insertion??
     // 	info(monTab[j])
     //ici le problème c'est que on n'a pas encore le numéro de réclamation, ça ne se fait qu'aprés l'enregistrement, comment faire???
    //	TableAjouteLigne(Traitementrecl,monTab[j])
     
     FIN
     
     
    Ferme(saisierec)

  17. #17
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par sphynxounet Voir le message
    Je préviens c'est une solution peut-être un peu lourde qui n'utilise pas forcément toutes les astuces de windev.

    Dans le bouton >> y a pas grand chose à mettre je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Si ListeCherche(LISTE_Destinatairerecl,LISTE_Utilisateur[LISTE_Utilisateur ])=-1 ALORS
     
    Listeajoute(LISTE_Destinatairerecl, LISTE_Utilisateur[LISTE_Utilisateur ])
    FIN
    Avec ça tu auras le nom de ton utilisateur dans ta LISTE_Destinatairerecl

    Ensuite il te faudra un bouton ou un traitement pour enregistrer dans ton fichier traitement_réclamation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    POUR TOUTE LIGNE DE LISTE_Destinatairerecl
        ID_Utilisateur = Tablecherche (Utilisateur, LISTE_Destinatairerecl..valeur) 
     
        SI ID_Utilisateur > -1 ALORS
     
            TableAjouteLigne (traitement_réclamation, ID_RECLAMATION, ID_Utilisateur)
     
        SINON
            Info("Utilisateur introuvable")
        FIN
    FIN
    ID_réclamation étant le numéro de l'enregistrement de la réclamation en cours.

    Donc normalement dans ton fichier traitement_réclamation tu devrais te retrouver avec 3 colonnes : l'ID de l'enregistrement du fichier (ça c'est normal), l'ID de la réclamation et l'ID de l'utilisateur.
    Merci beaucoup sphynxounet, je vai essayer ça

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/11/2008, 10h09
  2. Comptage d'enregistrements d'une liste
    Par Virgile59 dans le forum IHM
    Réponses: 6
    Dernier message: 23/01/2006, 10h42
  3. Enregistrement dans une liste déroulante & Msgbox
    Par tintinmarre dans le forum Access
    Réponses: 6
    Dernier message: 29/09/2005, 13h27
  4. Réponses: 4
    Dernier message: 16/06/2005, 15h37
  5. Réponses: 2
    Dernier message: 16/10/2004, 14h33

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