PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → débuts POO
débuts POO
Débuté par SEIH, 03 juil. 2025 17:52 - 5 réponses
Posté le 03 juillet 2025 - 17:52
Bonjour à tous,
Une question de novice qui tente de s'initier à la poo

Imaginons les classes suivantes

tentative est une classe
id est un entier
date est une date
resultat est un boolean
FIN

Téléphone est une classe
id est un entier
numero est une chaîne
tentatives est un tableau d'objet tentative dynamique
FIN

personne est une classe
id est un entier
nom est une chaîne
prenom est une chaîne
telephones est un tableau d'objet Téléphone dynamique
FIN


Dans une fenêtre, un champs table table_telephones et un autre table_tentatives.
la table table_telephones a pour source parcourue personne.telephone
Comment faire en sorte que lors de la sélection d'une ligne de ladite table, la table_tentatives affiche le contenu de l'objet telephone.tentatives ?

J'espère avoir été clair, et pas trop ridicule !

Merci à tous
Membre enregistré
4 317 messages
Posté le 04 juillet 2025 - 14:40
Bonjour,
Dans un premier temps, il faut modifier ton champ TABLE_Téléphone pour que la valeur mémorisée soit l'id des telephones de personne (gclPersonne.m_tabPéléphones.m_nIdTelephone)
Lors du clic sur la ligne c'est l'id qui sera retournée, Il suffit alors de faire une recherche (TableauCherche) sur la colonne m_nIdTentative du tableau clTelepphone.m_tabTentatives avec comme valeur recherchée, l'Id de téléphone et d'ajouter le résultat de la recher au tablea de CTentative utilisé pour remplir la table, puis d'afficher cette table.

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Membre enregistré
4 317 messages
Posté le 04 juillet 2025 - 16:41
Un truc dans le style
TableauCherche(gclPersonne.m_tabTelephone,tcLinéaire,"m_nIdTelephone",TABLE_Telephone)
TableAffiche(TABLE_Tentative)


--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Message modifié, 04 juillet 2025 - 16:51
Posté le 04 juillet 2025 - 17:27
Merci, je vais tenter cela, je pensais naïvement que le data binding était prévu/pensé pour cela et que la sélection d'un objet téléphone suffisait a afficher les tentatives liées.
Membre enregistré
61 messages
Posté le 09 juillet 2025 - 18:11
SEIH a écrit :
> Merci, je vais tenter cela, je pensais naïvement que le data binding était prévu/pensé pour cela et que la sélection d'un objet téléphone suffisait a afficher les tentatives liées.

Alors personnellement je procède comme cela :
Sur ma fenêtre j'ai une classe que j'instancie représentant mon code métier (ViewModel)
Dedans j'ai mes différents objets dont par exemple les objets sélectionnés

PersonneViewModel est une classe
Personne est une Personne
TelephoneSelectionne est un Téléphone dynamique
FIN

PROCÉDURE Constructeur()
TelephoneSelectionne=new Telephone()


La table tentative sera donc bind sur TelephoneSelectionne.tentatives, mais malheureusement Windev n'est pas capable de gérer une liaison vers un objet non instancié... Donc il faudra lorsque rien n'est sélectionné instancier un faux objet téléphone.

La table téléphone devra renvoyer ton objet téléphone et dans l'évènement de sélection tu vas assigner TelephoneSelectionne puis tu fais appel à table_tentative.affiche()

// Sélection d'une ligne de table_telephone
vue.TelephoneSelectionne=MoiMême
table_tentative.affiche()
Membre enregistré
2 messages
Posté le 21 juillet 2025 - 12:28
OK, merci pour cette réponse, je vais tenter également cela