PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Affichage des contacts mobiles dans une ZR
Affichage des contacts mobiles dans une ZR
Débuté par Jean TURCOTTE, 06 déc. 2017 19:06 - 6 réponses
Membre enregistré
1 123 messages
Popularité : +8 (8 votes)
Posté le 06 décembre 2017 - 19:06
Bonjour, :)

J'ai intégré le code suivant dans ma fenêtre pour afficher la liste des contacts mobile dans une ZR
// Rafraîchissement de la liste des contacts
ZoneRépétéeSupprimeTout(ZR_Contact)
gtabContacts est un tableau de Contacts

// Récupération de la liste des contacts
SI SAI_Recherche <> "" ALORS
gtabContacts = ContactListe(Null, contactNom, SAI_Recherche)
SINON
gtabContacts = ContactListe(Null)
FIN

TableauTrie(gtabContacts, ttMembre, "+Nom")
// Ajout dans la zone répétée
POUR TOUT tContact de gtabContacts
SI tContact..Nom <> "" ALORS
LIB_NomContact..Libellé = tContact..Nom
ZoneRépétéeAjouteLigne(ZR_Contact, tContact..Nom, tContact)
FIN
FIN

À l'affichage la liste apparaît correctement par ordre croissant. Lorsque je clic sur une ligne, le code suivant s'exécute:
// Affichage du nom de la ligne
Info(MoiMême.LIB_NomContact..Libellé)

Lorsque je clic sur la première ligne, ou le nom "Alain" est inscrit, c'est le nom "Vicci" qui s'affiche (dernier nom de la liste). Si je clic sur n importe laquelle autre ligne, le nom qui s'affiche correspond au nom inscrit de la ligne. Si je clic sur la première ligne après avoir cliqué sur une autre ligne, le nom "Alain" s'affiche.

Avez-vous une idée de la cause ?

Merci !

--
Jean Turcotte
WX 22
Android 7.0 avec Moto G4 Plus
Laptop Lenovo
Membre enregistré
637 messages
Popularité : +36 (36 votes)
Posté le 07 décembre 2017 - 07:53
Bonjour Jean,

C'est tout à fait normal puisque que dans ta boucle tu récupères le dernier enregistrement de la liste des contacts !

et que "MoiMême.LIB_NomContact..Libellé" ne permet pas de récupérer une valeur de la ZR. Il faut passer encore et toujours par les attributs.

Donc, plutôt que "Info(MoiMême.LIB_NomContact..Libellé)" utilises :

Info(nom_de_ta_ZR[nom_de_ta_ZR].ATT_nomduchamp)


ATT_nomduchamp doit correspondre au nom de l'attribut (à priori le tout premier dans ta ZR)
nom_de_ta_ZR évidemment le nom de ta Zr.

Cdlt - Eric.

--
Eric DELATTRE
http://www.yoosite.fr
Message modifié, 07 décembre 2017 - 07:54
Membre enregistré
1 123 messages
Popularité : +8 (8 votes)
Posté le 07 décembre 2017 - 13:10
Merci Eric,

C'est très clair maintenant. L'aide en ligne de PCSoft est très complet mais comme je suis débutant, certaines informations doivent être interprétée . Ça s'en vient par contre.

Jean :merci:

--
Jean Turcotte
WX 22
Android 7.0 avec Moto G4 Plus
Laptop Lenovo
Membre enregistré
1 123 messages
Popularité : +8 (8 votes)
Posté le 07 décembre 2017 - 13:52
Autre question au passage.

L'ouverture de ma fenêtre est très longue et prends près de 4 sec. J'ai essayé de créer une tache parallèle dès l'ouverture de ma page principale. Ma procédure remplis les ZR de la page de contact. Je n'ai aucune erreur mais lorsque j'ouvre la page de contact, aucune donnée n'apparaissent dans ma ZR.

Est-ce possible de remplir des ZR lorsque la page dans laquelle elle se trouve n'est pas ouverte ?

Merci !

--
Jean Turcotte
WX 22
Android 7.0 avec Moto G4 Plus
Laptop Lenovo
Membre enregistré
637 messages
Popularité : +36 (36 votes)
Posté le 08 décembre 2017 - 08:53
Bonjour Jean,

Les problèmes de lenteur sont anormaux. Je remplis une ZR avec des centaines d'enregistrements (C/S) en moins d'une seconde.

Je ne saurais que trop conseiller l'emploi des web services d'une part. Je suggère aussi l'emploi du JSON plus léger que le XML.

D'autre part, pour le remplissage de la ZR, difficile de décrire ici en quelques lignes.

Par contre, il y a un exemple sur lequel tu peux te baser fortement. C'est page 18 de la LST 110. Regarde comment fonctionne la procédure "DonnéesRécupère". Ça fonctionne du premier coup !

Bon dev - Eric.
Message modifié, 08 décembre 2017 - 08:53
Membre enregistré
1 123 messages
Popularité : +8 (8 votes)
Posté le 08 décembre 2017 - 13:54
Je vais regarder ça, merci ! :)

--
Jean Turcotte
WX 22
Android 7.0 avec Moto G4 Plus
Laptop Lenovo
Posté le 24 août 2022 - 13:15
Comment faire si on veut afficher le N° de téléphone en plus du nom dans la zone répétée?
je fais ça:

SI sRecherche <> "" ALORS
gtabContacts = ContactListe(Null, contactPrénom, sRecherche)
SINON
gtabContacts = ContactListe(Null)
FIN

SI gtabContacts.Occurrence > 0 ALORS

POUR TOUT tContact DE gtabContacts
ZoneRépétéeAjouteLigne(ZR_Contacts,tContact.Prénom, tContact.Téléphone)
FIN
FIN
mais ça ne marche pas.