PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Lecteur laser
Lecteur laser
Débuté par Mathias Rapatout, 05 avr. 2007 17:04 - 4 réponses
Posté le 05 avril 2007 - 17:04
Bonjour

il y a t'il une méthode pour savoir si la valeur du champ vient d'etre scanner ou saisie a la main.

merci d'avance
Posté le 05 avril 2007 - 17:19
Bonjour,
Pour faire ce genre de test, je regarde la "vitesse de frappe", en fait le temps qui sépare la saisie du premier caractère de la sortie du champ. Moins d'une seconde pour 13 caractères => scanné.

Frédéric.
Posté le 05 avril 2007 - 18:26
merci

je vais testé de suite
Posté le 05 avril 2007 - 19:59
Voici le code que j'utilise:
Dans le code d'entrée du champ:
SI Taille(MoiMême..ValeurAffichée) = 1 ALORS
ghDebutModif = HeureSys()
FIN
Et dans le code de validation de la fenêtre (appelé par la touche ENTREE):
nDifference = HeureDifférence(ghDebutModif,HeureSys())
SI Val(Droite(EntierVersHeure(nDifference),2)) > 10 ALORS
Info("Vous devez scanner la zone !")
ghDebutModif = ""
SAI CodeZone = ""
RepriseSaisie(SAI CodeZone)
FIN

Frédéric.
Posté le 06 avril 2007 - 11:30
Merci pour ce code,

j'ai fait différemment.

A chaque Modification de la zone :

SI Taille(Sai UG) = 1 ALORS
ChronoDébut(1)
FIN
SI Taille(Sai UG) = 13 ALORS
ChronoFin(1)
FIN


Sortie de la zone :

Duree Saisie EST UNE DURRE = ChronoFin(1)
SI Duree Saisie < 100 ALORS
Info("Scan ",Duree Saisie)
SINON
Info("Saisie a la main ",Duree Saisie)
FIN


Bonne journée et merci encore