PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → URGENT : Pb de Masque de Saisie limité
URGENT : Pb de Masque de Saisie limité
Débuté par scatheli, 20 sep. 2005 02:08 - 4 réponses
Posté le 20 septembre 2005 - 02:08
Bonjour,
Je souhaite effectuer un controle "masque de saisie" sur un champ de type alpha/num avec pour uniques valeurs possibles :

A-B-C-D-0-1-2-3-4-5-6

sous la forme :

4 caractères + . + 4 caractères

Merci à tous pour votre aide...
ALexis
Posté le 20 septembre 2005 - 08:10
Il faut utiliser les expressions régulières (voir documentation)
Posté le 20 septembre 2005 - 11:28
Bonjour,

Avec un masque de saisie, je ne vois pas trop comment faire. Sinon, un
contrôle en cours de frappe, ou bien en sortie de champ, en utilisant
les expressions régulières, tu devrais t'en sortir non?

Bon courage,

Céline.

Alexis a écrit:
Bonjour,
Je souhaite effectuer un controle "masque de saisie" sur un champ de type alpha/num avec pour uniques valeurs possibles :

A-B-C-D-0-1-2-3-4-5-6

sous la forme :

4 caractères + . + 4 caractères

Merci à tous pour votre aide...
ALexis
Posté le 20 septembre 2005 - 11:34
Salut

Pour commencer tu peux définir le masque suivant : "AAAA.9999".
Un premier niveau de filtrage sera réalisé.

Ensuite il faudrait ajouter un contrôle dans le code "A chaque
modification du champ".

Peut-être qu'une expression régulière pourrait t'aider. Pas trop
utilisé, mais c'est une piste.

Ciao
Pat Biker
http://wdgotcha.atspace.com
Posté le 21 septembre 2005 - 11:30
Bonjour,
Ce code permet de controler la Saisie dans champs texte

// Contrôle du nom fourni
Chi est une chaîne
Pos est un entier
Err est un entier
Chi=moimeme
Err=Faux // Pour reprendre la saisie en cas d'erreur
// position du curseur
Pos=moimeme..Curseur
Pos=Pos-1
SI Pos>0
SI Milieu("LLLL.CCCC",Pos,1)="C" ALORS
SI Position("123456",Chi[[Pos]])<1 ALORS
Erreur("Il faut un chiffre (1 à 5) à cette position")
Err=Vrai
FIN
FIN
SI Milieu("LLLL.CCCC",Pos,1)="L" ALORS
SI Position("ABCD",Chi[[Pos]])<1 ALORS
Erreur("Il faut une lettre (A à Z) à cette position")
Err=Vrai
FIN

FIN
SI expos<Pos
SI Milieu("LLLL.CCCC",Pos+1,1)<>"L" ET Milieu("LLLL.CCCC",Pos+1,1)<>"C"
ALORS
SI Milieu(moimeme,Pos+1,1)<>Milieu("LLLL.CCCC",Pos+1,1)
moimeme=Milieu(moimeme,1,Pos+1)+Milieu("LLLL.CCCC",Pos+1,1)+Milieu(moimeme,Pos+1)
moimeme..Curseur=Taille(moimeme+1)
moimeme..FinCurseur=Taille(moimeme+1)
FIN
FIN
FIN
SI Err ALORS
// Retour de la dernière valeur valide et retour en saisie
Pos=moimeme..Curseur
moimeme=moimeme..Note // Utilise la sauvegarde dans les notes
moimeme..Curseur=Pos // Replace le curseur
RepriseSaisie("")
SINON
// Mémorise la valeur correcte pour la restituer en cas d'erreur
moimeme..Note=moimeme
FIN
expos=Pos
FIN

C'est de l'ancien code WD5.5 a revoir peut-etre
Patrick




e de news: 432f3e42$1@news.pcsoft.fr...

Bonjour,
Je souhaite effectuer un controle "masque de saisie" sur un champ de type
alpha/num avec pour uniques valeurs possibles :

A-B-C-D-0-1-2-3-4-5-6

sous la forme :

4 caractères + . + 4 caractères

Merci à tous pour votre aide...
ALexis