Bonjour , COMMENT : Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! COMMENT : redirigez un évènement port USB vers un port com virtuel merci
Bonjour Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! Et du coup la question est ? Parce-que la réponse a déjà été donné dans le thread que tu mentionne. Ça n'a rien de sorcier en fait la lecture code barre. Le scanner n'est qu'un clavier ! Il suffit de mettre le focus sur un champ de saisie en particulier et s'assurer que la douchette envoi bien le VK_RETURN apres chaque saisie et traiter le contenu via le declencheur "sortie de champ" ou "a chaque touche enfoncée" et ne traiter que quand la touche est VK_Return (le deux fonctionne pareil) Le plus pénible c'est de s'assurer que le focus reste sur ce champ de saisie en fait !
je cherche une solution pour initialiser le champs dans le cas ou l'interception de l'évènement s'effectue a partir d'un autre champs Code (Windev): PROCEDURE ProcedureCB(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!, wParam, lParam) nPosPoint est une chaîne SI Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!() = causeClavier ALORS c est un entier=_EVE.wParam SI c>=47 ET c<58 ALORS // caractere numerique gsSCAN+=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(wParam) FIN SI Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(gsSCAN)=13 ALORS nPosPoint=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(gsSCAN,".") // Partie du code a modifier // si le champ en cours ne correspond pas au champ de saisie de code a barre il faut remettre le champ a null après l' interception de l'évènement SI {Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()}..Type=typSaisieNum OR {Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()}..Type=typSaisieTexte OR {Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()}..Type=typSaisieMonétaire OR {Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()}..Type=typSaisieNumériquePrécis OR{Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()}..Type=typSaisieDate ALORS {Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()}..Valeur="" FIN // ChCodeBarre = gsSCAN gsSCAN="" SI gbTicketfermer=Faux AND nPosPoint=0 ALORS SI Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Article,CodeBarre,Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(ChCodeBarre),hIdentique) ALORS gnIDarticleSelect=Article.idarticle gnIdboutontselect=0 gcModeAjout="A" Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(BTN_validligne,trtClic) gsSCAN="" SINON RepriseSaisie(ChCodeBarre) ChCodeBarre = gsSCAN FIN FIN FIN FIN
Bonsoir, Dans le code [Déclarations Globales] de la fenêtre Code (Windev): //----------- Monitoring des touches -----------// Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Monitor_Touche",MoiMême..Nom+".*",WM_KEYDOWN) // Pression d'une touche du clavier Monitor_Touche : Nom de la procédure WLangage à lancer lors de l'interception de l'événement. MoiMême..Nom : Ici C'est tout la fenêtre qui est concernée par l'interception de l'événement du clique Voici un exemple de code pour la procédure [Monitor_Touche] Code (Windev): SELON _EVE.wParam CAS VK_RETURN : // Clique sur le bouton ENTRER sChamp_Encours est une chaîne = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!() // Identification du champ en cours de saisie SI sChamp_Encours<>"" ET Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(sChamp_Encours)=13 ET Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!({sChamp_Encours,indChamp}..Valeur)=Vrai ALORS // Si sChamp_Encours remplit ces conditions // alors on peut exécuter ici la procédure de recherche par code à barres FIN CAS VK_ESCAPE : RepriseSaisie(SAI_TermeRecherché) CAS VK_F2 : SI bAvec_Colisage=1 ALORS RepriseSaisie(TABLE_Panier.nbr_colis) SINON RepriseSaisie(TABLE_Panier.qte) FIN CAS VK_DELETE : // TableSelect(TABLE_Panier) // Gest_Action_BTN_Panier("Supprimer") AUTRE CAS FIN L'avantage de cette méthode est qu'elle permet d'intercepter l’événement du clique sur ENTRER (ou autres) sur tous les champs de la fenêtre. Code à adapter par rapport aux champs de ta fenêtre et à améliorer. P.S : Si ChampEnCours()<>"" On peut déduire que c'est un champ de saisie. Les douchettes/ Lecteurs de code à barres renvoient le code de la touche Entrer après fin de scan ou peuvent être configurés pour ce faire Regarde du coté du manuel de configuration de ta douchette