PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Sélection texte dans un champ de saisie (pas si simple...)
Sélection texte dans un champ de saisie (pas si simple...)
Iniciado por dl, 15,jun. 2020 15:30 - 3 respuestas
Publicado el 15,junio 2020 - 15:30
Bonjour,

J'ai un problème tout bête que je n'arrive pas à résoudre.
J'ai un champ de saisie, dans ce champ l'utilisateur saisit des codes client séparés par des /
En sortie de champ, je voudrais que les codes soient vérifiés par l'application et que si un des codes ne correspond pas aux critères, ce code (donc juste la portion de la chaine saisie) soit sélectionné automatiquement.
J'utilise les propriétes Curseur et FinCurseur pour la sélection, il n'y a rien de plus basique:
EcranPremier(SAI_CODCLI)
SAI_CODCLI..Curseur = nPosCurseur
SAI_CODCLI..FinCurseur = nFinCurseur

Mon problème c'est que en mettant ce code en Sortie de champ, la sélection ne se fait pas, le curseur se positionne systématiquement en début du champ de saisie. Par contre si je mets ces 3 même ligne dans un bouton à coté, ça sélectionne bien ma portion de chaîne dans mon champ de saisie. Je me dis qu'il s'agit peut-être d'une limitation qui ferait qu'on ne puisse pas faire la sélection depuis le champ lui-même, mais je n'ai pas vu mention d'une telle limitation dans la doc associée.
Pour info, si dans le code de sortie de mon champ de saisie je fais un Executetraitement du bouton qui fonctionne au clic, ça ne fonctionne toujours pas. Et si vous vous posez la question, je fais un EcranPremier avant pour être sur que le focus soit bien sur mon champ de saisie, je ne sais pas si c'est nécessaire, mais même sans ça ne fonctionne pas.

Quelqu'un aurait une explication ou une solution à e problème?
Miembro registrado
356 mensajes
Publicado el 16,junio 2020 - 10:05
Bonjour,

Pour que ton code fasse ce que tu souhaites il faut désactiver "Effacement automatique" dans l'onglet "Détail" de la Description du champ.
Idéalement lorsque tu constates l'anomalie utilise un "RepriseSaisie(SAI_CODCLI)

A+

--
Francis MOREL
http://www.SoftProtect.fr
Publicado el 16,junio 2020 - 16:15
Merci de ta réponse Francis.
L'option dont tu parles était déjà désactivée. Quant au RepriseSaisie j'ai déjà essayé mais sans succès. D'ailleurs le curseur reste dans mon champ de saisie, c'est donc qu'il garde le focus.
Dans la documentation il est précisé que le champ doit être en saisie pour que les propriétés Curseur et FinCurseur puissent être modifiées. Effectivement pour mon bouton test, il ne fonctionne que si j'ai cliqué sur mon champ de saisie avant.
Donc je me dis que Windev considère peut-être que le champ n'est plus en saisie quand il exécute le code de sortie de champ. C'est la seule explication logique que je vois pour l'instant.
N'empêche, si qqun a déjà réussi à faire quelquechose d'équivalent je suis preneur!
Publicado el 16,junio 2020 - 17:34
J'ai fini par trouver d'où vient le problème, et il s'agit bien d'un bug.
Mon champ a un masque de saisie Majuscules (lettres chiffres et symboles). Si j'enlève ce masque de saisie, la sélection se fait correctement.
A priori PCSOFT a quelques soucis avec les masques de saisies. Dans un projet iOS j'ai un soucis identique. Quand il y a un masque de saisie Majuscule, le curseur se replace systématiquement avant la lettre tapée (mais se comporte correctement pour les chiffres, symboles et espaces).
Bref c'était pour la petite anecdote, considérez que c'est "résolu", je vais de ce pas signaler ce dysfonctionnement au support.