Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > WinDev
WinDev Forum d'entraide sur la programmation en WinDev
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/01/2013, 16h16   #1
Atsibat
Membre expérimenté
 
Développeur informatique
Inscription : mars 2009
Messages : 314
Détails du profil
Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2009
Messages : 314
Points : 594
Points : 594
Par défaut Table et tableau d'objets

Bonjour,
je crée une classe cUser
et une classe cCollectionUser
avec un membre tblUser qui est un tableau de cUser

je déclare maCollUser est un cCollectionUser
je lie une table à maCollUser.tblUser

j'affiche bien mes différents objets dans chaque ligne et chaque membre est dans la bonne colonne. super tout va bien...

je déclare monUser est un cUser

Et voilà la question :
j'aimerai implémenter monUser lors de la sélection d'une ligne de cette table.
une idée?

merci
Atsibat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 16h55   #2
wimbish
Membre Expert
 
Avatar de wimbish
 
Homme Christophe Vibert
Développeur informatique
Inscription : octobre 2006
Messages : 409
Détails du profil
Informations personnelles :
Nom : Homme Christophe Vibert
Âge : 39
Localisation : France, Manche (Basse Normandie)

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

Informations forums :
Inscription : octobre 2006
Messages : 409
Points : 1 043
Points : 1 043
Bonjour,

En auto je ne vois pas mais avec du code cela semble assez simple si tu a un id unique par user:

A la sélection de la ligne tu recherche dans ton tableau d'objet user l'id, cela te retourne l'indice dans le tableau et tu n'as plus qu'a affecter ton objet.
__________________
Christophe.

Tous les chemins mènent à Rome http://doc.pcsoft.fr/fr-FR/
wimbish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 19h01   #3
tatayo
Expert Confirmé
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 583
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 583
Points : 3 184
Points : 3 184
Bonjour,
Je viens de faire un test vite fait (avec la version 16, et juste en déclaration): s'il s'agit d'un tableau d'objets dynamiques, la table peux renvoyer l'objet courant. Donc c'est peut-être une piste.

Par contre si le tableau est renvoyé via une propriété de la première classe, plus rien ne fonctionne ! Dans les propriétés de la table, je n'ai pas accès au membre/propriétés de la classe à laquelle est lié le tableau... A voir avec un membre publique si ça fonctionne.

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 09h04   #4
Atsibat
Membre expérimenté
 
Développeur informatique
Inscription : mars 2009
Messages : 314
Détails du profil
Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2009
Messages : 314
Points : 594
Points : 594
Bonjour,

merci de vos réponses, effectivement avec du code cela va être assez simple mais pour une fois j'aimerai aller vers la solution auto donc je vais tester la solution Tatayo et je vous fais un retour.

merci
Atsibat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 10h57   #5
OnePoint
Membre expérimenté
 
Inscription : septembre 2010
Messages : 210
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2010
Messages : 210
Points : 538
Points : 538
Bonjour à tous,

Atsibat, surtout ne le prend pas mal, mais je ne comprends pas la question...
Citation:
Envoyé par Atsibat Voir le message
Et voilà la question :
j'aimerai implémenter monUser lors de la sélection d'une ligne de cette table.
une idée?
Qu'est-ce que tu appelles "implémenter" ???
Je crois que tu emploies ce verbe de façon inappropriée...

Pour moi "implémenter" revient au final à "coder des fonctionnalités nécessaires à la réalisation d'un objectif".
Donc, pour revenir à ta question... quel est le but ?
OnePoint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 13h36   #6
Atsibat
Membre expérimenté
 
Développeur informatique
Inscription : mars 2009
Messages : 314
Détails du profil
Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2009
Messages : 314
Points : 594
Points : 594
He oui autant pour moi, je voulais dire allouer.
Effectivement les bons mots au bon endroit ...
Bon il semble que les autres lecteurs de ce post aient un traducteur intégré mais tu as raison.

Donc j'imagine qu'à chaque ligne de la table correspond une instance de cUser allouée avec les bonne valeurs puisqu'il l'affiche (mais peut être pas)
Or cette instance existante devrait pouvoir être allouée dans un objet du même type par passage de référence du genre
monUser=table[i] qui ne fonctionne pas évidemment.

Donc je reformule la question :
j'aimerai allouer monUser lors de la sélection d'une ligne de cette table avec l'instance correspondant à la ligne sélectionnée.
une idée?

merci
Atsibat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 18h17   #7
OnePoint
Membre expérimenté
 
Inscription : septembre 2010
Messages : 210
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2010
Messages : 210
Points : 538
Points : 538
Merci pour l'explication.

Citation:
Envoyé par Atsibat Voir le message
Donc je reformule la question :
j'aimerai allouer monUser lors de la sélection d'une ligne de cette table avec l'instance correspondant à la ligne sélectionnée.
une idée?
Pour rester "rigoureux", le verbe "allouer" ne convient pas non plus.

En fait tu veux que l'objet cUser correspondant à la ligne sélectionnée dans le champ table soit:
référencé par la variable monUser, si monUser est une variable objet dynamique,
copié dans la variable monUser, si monUser est une variable objet mais pas dynamique.
(en WLangage, une variable objet qui n'est pas dynamique est allouée dès qu'il est déclaré)

Citation:
Envoyé par Atsibat Voir le message
Donc j'imagine qu'à chaque ligne de la table correspond une instance de cUser allouée avec les bonne valeurs puisqu'il l'affiche (mais peut être pas)
Or cette instance existante devrait pouvoir être allouée dans un objet du même type par passage de référence du genre
monUser=table[i] qui ne fonctionne pas évidemment.
Si ça fonctionne !
tatayo a donné la solution au début de son message: "la table peut renvoyer l'objet courant"

Mais il faut paramétrer le champ Table en conséquence.

Dans la fenêtre Description du champ table:
Onglet Contenu:
• remplissage = <par variable>
• Source parcourue = désigner ici la variable de type tableau (on peut désigner un tableau membre d'un objet)
• Variable mémorisée = dans la liste, sélectionner <élément courant>

A partir de là, le champ table retourne directement une référence sur l'objet !

Par exemple, si la table s'appelle TBL_Users, tu places ce code dans le traitement Sélection d'une ligne de TBL_Users:
Code WLangage :
monUser = TBL_Users
Et ça fonctionne !
OnePoint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 10h37   #8
Atsibat
Membre expérimenté
 
Développeur informatique
Inscription : mars 2009
Messages : 314
Détails du profil
Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2009
Messages : 314
Points : 594
Points : 594
Merci,

résolu donc.
Atsibat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h34.


 
 
 
 
Partenaires

Hébergement Web