PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → [WM17] Modification zone à cocher non prise en compte dans zr
[WM17] Modification zone à cocher non prise en compte dans zr
Débuté par Jahwa, 18 mai 2012 16:36 - 2 réponses
Membre enregistré
54 messages
Posté le 18 mai 2012 - 16:36
Hello,

---info: ce bug ne se produit pas en version simulé sur PC, il a été constaté sur un programme compilé Android, et exécuté sur une tablette Samsung Galaxy 10.1 compilé sous version 61k, 69m et rectificatif 76796-----

Comme (à ma connaissance) il n'y a aucun moyen, dans un environnement Android, de connaître la ligne (dans une zone répétée) sur laquelle on clic ou modifie quelque chose, j'ai mis un interrupteur en début de ligne, ce qui permet à l'utilisateur de signaler qu'il sélectionne ce client (dans une liste de client) ou non.
Je fais un traitement de cette ligne en cas de modif de l'interrupteur.
Par exemple, sur l'évènement "à chaque modification ...", je crée une boucle:

Pour i = 1 a Zr_Client..Occurence
Si zr_Client[i].Int_Interrupteur..Valeur = 0 Alors
Supprime la ligne
Fin
Fin

Si je clique sur l'interrupteur de la 1er ligne celui-ci passe visuellement de "coché" à "décoché", c à dire de la valeur 1 à 0 (théoriquement).
Ceci peut être vérifié par l'instruction <moimême> qui dans ce cas donne réellement la résultat de 0 quand l'interrupteur vient d'être décoché.
Par contre, si dans le même évènement je met la boucle citée plus haut, celle-ci ne renvoie pas la valeur 0, mais l'ancienne valeur de 1 !!

En résumé, si je décoche la 1ère ligne, la valeur renvoyée par
- moimême = 0
- zr_Client[1].Int_Interrupteur..Valeur = 1

Est-ce que je programme mal ?
Suis-je passé à coté d'une instruction qui me permettrai de repérer la ligne active ?
Existe-t-il un autre moyen de repérer la ligne ?

D'avance merci de votre aide
Cordialement
Posté le 22 mai 2012 - 00:16
Bjr,

Le 5/18/2012, Jahwa a supposé :
Comme (à ma connaissance) il n'y a aucun moyen, dans un environnement
Android, de connaître la ligne (dans une zone répétée) sur laquelle on clic
ou modifie quelque chose, j'ai mis un interrupteur en début de ligne, ce qui


Si ta ZoneR est "branchée" sur un fichier, c'est l'enregistrement
correspondant qui est selectionné sur un "selection d'une ligne" ou
double tap.
Par exemple, j'ai dans un double tap d'une ZR un ouvrefille(fen_modif)
et dans le init de la fen_modif avec un fichierversecran je remplis la
fiche.
Ceci dit, il y a tellement de bizzareries dans les ZR que c 'est pas
evident.
Dernierement, j'ai voulu y mettre une jauge, et ca me perturbe (bloque)
le scroll de la ZR...

Pour ton pb d'interrupteur, deja que c'est "chaud" a faire fonctionner
dans les tables en WD normal, suivant que la table est memoire, fichier
etc.. j'essaierais meme pas de faire ce que tu tentes...

a plus et on essaie de se tenir au courant de nos "decouvertes"...

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Membre enregistré
54 messages
Posté le 23 mai 2012 - 14:35
Merci de ta réponse

Pour vous tenir au courant de la façon dont j'ai résolu le pb :

en fait, je développais mal ! ( mal formation de Delphi !)
Je pense qu'en windev (ou affilié), il faut utiliser les attributs.
Par exemple en cliquant sur une zone 1 je peux savoir savoir ce que contient la zone 2 de la même ligne sans savoir le n° de ligne. En partant de ce principe je crées une zone "NumLigne" (cachée ou visible selon besoins) dans ma zr, qui incrémente la ligne.
Donc si je clique sur la zone 1, je repère le numligne, et dans une boucle de traitement sur toutes les lignes de la zr, je peu faire un traitement spécifique à ma ligne, code:
Pour i = 1 a zr_ma-zr..occurence
si zr_ma-zr[att_numligne].zone2 = ...
...traitement de ma ligne
sinon
... traitement des autres lignes
zr_ma-zr[i].zone2 =

Voilà si ça peu faire avancer le chimili ... ;-)