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 :

afficher table mémoire avec colonne de type combo (sur fichier) [WD18]


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 85
    Points : 87
    Points
    87
    Par défaut afficher table mémoire avec colonne de type combo (sur fichier)
    Je m'explique:

    1. j'ai un fichier F1 avec un identifiant automatique F1 et un champ texte F1

    2. j'ai une table mémoire en saisie dans laquelle une colonne est de type combo et je l'initialise avec toutes les valeurs possibles du champ texte F1 dans le fichier F1

    3. En mode création, pour chaque ligne de ma table mémoire je crée un enregistrement dans le fichier F2 dont un champ reprend l'identifiant F1 correspondant à la valeur sélectionnée dans la colonne combo
    Cela fonctionne

    4. Pour afficher ma table mémoire, je lis chaque occurence du fichier F2 pour remplir la table mémoire (avec TableAjouteLigne).

    Question: comment afficher dans la colonne de type combo la valeur du champ texte F1 correspondant à l'identifiant F1 se trouvant dans l'enregistrement F2?

    Je cale sur ce problème depuis plus de 2 heures et je ne vois pas la solution.

    Si c'est pas clair, dites-le moi

  2. #2
    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 confirme que ce n'est pas clair... en tout cas pour moi...

    Mais bon, je fais preuve de bonne volonté et j'essaye de lire entre les lignes.
    Je comprends ou crois comprendre, que dans une colonne de type combo dans une table, tu veux afficher une valeur (valeur du champ texte F1) et en mémoriser une autre (identifiant F1)...

    Si c'est ça ce lien devrait t'aider...
    http://doc.pcsoft.fr/fr-FR/?gLien
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  3. #3
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 85
    Points : 87
    Points
    87
    Par défaut
    En fait, dans le fichier F2 j'ai l'identifiant unique d'un enregistrement du fichier F1.

    Ce que je sais faire c'est récupérer cet identifiant unique, mais dans la combo de la table mémoire, je veux afficher la valeur du champ texte associé de l'enregistrement du fichier F1 correspondant à cet identifiant unique.

    Je précise que la colonne combo est chargée avec la valeur du champ texte de tous les enregistrements du fichier F1.

    Est-ce que "glien" permet cela?

  4. #4
    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 fdelepine Voir le message
    En fait, dans le fichier F2 j'ai l'identifiant unique d'un enregistrement du fichier F1.

    Ce que je sais faire c'est récupérer cet identifiant unique, mais dans la combo de la table mémoire, je veux afficher la valeur du champ texte associé de l'enregistrement du fichier F1 correspondant à cet identifiant unique.

    Je précise que la colonne combo est chargée avec la valeur du champ texte de tous les enregistrements du fichier F1.

    Est-ce que "glien" permet cela?
    gLien permet dans la combo de faire afficher une valeur, le texte associé de l'enregistrement du fichier F1 en l'occurence, mais en mémoriser une autre, l'identifiant unique du fichier F1...

    Si tu initialises ta combo avec tous les couples de valeurs de la sorte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeAjoute(COMBO_TaCombo, "Texte_F1" + gLien("id_F1"))
    la colonne combo affichera les texte F1 mais mémorisera les id F1...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  5. #5
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 85
    Points : 87
    Points
    87
    Par défaut
    Ok, on progresse ...

    Je sais charger ma colonne combo en utilisant glien poir y stocker l'id de F1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    HLitPremier (F1) 
    TANTQUE PAS HEnDehors () 
    	ListeAjoute(COL_Combo,F1.Description + gLien(F1.ID)) 
    	HLitSuivant (F1) 
    FIN
    Mais, pour chaque enregistrement de F2 que j'affiche dans une table, je n'arrive toujours pas à retrouver et retrouver et afficher la valeur affichée de la combo à cette valeur mémorisée via glien.

    Le fichier F2 contient bien le bon id de F1 dans tous ses enregistrements.

    Je pense que je dois utiliser la propriété "..valeurmémorisée" (?)

    Ma combo (COL_Combo) est dans une table, est-ce une limitation de WinDev?

    Je lis dans la doc que la propriété ..ValeurMémorisée s'applique uniquement aux champs Liste, Liste Image et Combo.

    Help!

  6. #6
    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 fdelepine Voir le message
    Mais, pour chaque enregistrement de F2 que j'affiche dans une table, je n'arrive toujours pas à retrouver et retrouver et afficher la valeur affichée de la combo à cette valeur mémorisée via glien.

    Le fichier F2 contient bien le bon id de F1 dans tous ses enregistrements.

    Je pense que je dois utiliser la propriété "..valeurmémorisée" (?)

    Ma combo (COL_Combo) est dans une table, est-ce une limitation de WinDev?

    Je lis dans la doc que la propriété ..ValeurMémorisée s'applique uniquement aux champs Liste, Liste Image et Combo.
    J'ai toujours du mal à comprendre ce qu e tu veux faire, du coup ce n'est pas facile de te répondre..

    Je crois comprendre que tu as une 2ème table qui affiche des données du fichier F2 dont une colonne contient l'id de F1. Mais tu veux afficher les Descriptions de F1 à la place de l'id...

    si c'est cela, c'est simple :
    - Dans la table F2, tu transformes la colonne id F1 en combo
    - tu charges cette combo de la même manière que pour la 1ère table

    et c'est tout, en espérant avoir bien compris ce qui est moins sur...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  7. #7
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 85
    Points : 87
    Points
    87
    Par défaut
    Bon, j'essaie d'être plus clair:

    Mon fichier maître contient des personnes. Son identifiant unique est IDPersonne.

    J'ai un fichier LANGUE qui contient des langues de travail. Son identifiant unique est IDLangue et il contient aussi l'intitulé de la langue (aussi défini comme clé unique).

    Entre ces deux fichiers, j'ai une troisième fichier LanguesParlées qui est destiné à stocker les langues connues par chaque personne. Il a un identifiant unique IDLangueParlée, l'identifiant de la personne IDPersonne et l'identifiant de la langue IDLangue. Il contient aussi d'autres champs pour gérer le niveau de connaissance de la langue.

    Dans la fenêtre gérant une Personne, j'ai une table mémoire Langues dans laquelle je peux entrer une ligne par langue pour cette personne. La première colonne de cette table est une combo qui est initialisée (dans l'initialisation de la fenêtre Personne, voir code dans mon post précédent où F1 est LANGUE). Je peux ainsi ajouter des lignes et la première colonne affiche bien la liste des langues contenues dans le fichier Langue er chargée dans la combo.

    En création/modification, la mise à jour du fichierLanguesParlées est correcte, i.e. je supprime d'abord tous les enregistrements relatifs à la personne et pour chaque ligne de ma table mémoire Langue, je crée un nouvel enregistrement dans LanguesParlées (je récupère l'IDLangue en recherchant dans Langue sur base de la valeur affichée de la combo dans la ligne).

    Tout cela fonctionne correctement.

    Mon problème c'est l'affichage des données d'une personne existante que je sélectionne dans une liste. La sélection d'une liste m'affiche correctement toutes les données de la personne sélectionnée, en ce y compris toutes les autres colonnes de la table Langues, sauf celle qui doit afficher l'intitulé de la langue qui reste désespérement vide.

    Dans le code de la sélection d'une personne, pour charger la table Langues j'ai le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    POUR TOUT LANGUESPARLEES AVEC IDPersonne=LIB_IDPersonne
     
    	TableAjouteLigne(TABLE_LANGUES, XXXX , LANGUESPARLEES.ExpressionOrale,LANGUESPARLEES.ExpressionEcrite,LANGUEPARLEES.Lecture)
     
    FIN
    dans lequel XXXX est le code manquant pour afficher l'intitulé de la langue.

    Il est à noter que les 3 colonnes suivantes sont aussi des combos mais dont la valeur est fixée dans la description des colonnes, et là, je n'ai pas de problème d'affichage).

    Voilà, j'espère avoir été plus clair.

  8. #8
    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
    Dans LANGUESPARLEES tu as l'identifiant de la langue IDLangue.

    Dans le TableAjouteLigne() tu remplaces XXXX par IDLangue.

    Dans la table TABLE_LANGUES tu dis que la 1ère colonne où y-a IDLangue est de type combo.
    Puis tu remplis la combo comme tu l'as fait pour l'autre écran avec gLien.
    Ça devrait donner quelque chose comme ça...

    ListeAjoute(TABLE_LANGUES.COL_Combo_IDLangue,LANGUE.Description + gLien(LANGUE.ID))

    ainsi dans la table la colonne COL_Combo_IDLangue mémorise l'IDLangue mais affiche la Description de la langue...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  9. #9
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 85
    Points : 87
    Points
    87
    Par défaut
    OK je vais essayer demain, maintenant c'est direction pub!

  10. #10
    Membre régulier
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 85
    Points : 87
    Points
    87
    Par défaut
    Laurent, si tu n'existais pas il faudrait t'inventer!

    Tout fonctionne maintenant, je vais enfin pouvoir avancer dans ce développement!

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

Discussions similaires

  1. Group by avec colonne de type date
    Par lilye dans le forum SQL
    Réponses: 2
    Dernier message: 02/10/2008, 10h34
  2. Réponses: 4
    Dernier message: 17/07/2008, 12h24
  3. Table editable avec colonnes typées
    Par sanchou dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 10/05/2007, 14h28
  4. Pb Alter table move avec un champ type long
    Par rescue dans le forum Oracle
    Réponses: 8
    Dernier message: 18/08/2006, 13h28

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