IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Récupérer la valeur lue par un lecteur Code Barre


Sujet :

WinDev

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Récupérer la valeur lue par un lecteur Code Barre
    Bonsoir,
    J'ai un souci sur l'utilisation du code barre sur windev en fait je veux savoir comment je peux récupéré le code affiché sur le produit sur un champ de saisi , j'ai déjà crée une fenêtre avec un champ de saisi et je me suis déjà procuré une douchette . j'ai trouvé le code suivant : sur ce lien (http://doc.pcsoft.fr/fr-FR/?1013018)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // Déclaration des variables
    // Définition du nombre de caractères à lire
    NBCarALire est un entier = 13
    // Nombre d'octets en attente dans le buffer
    NbOctetAttente est un entier
    BufferPrn est une chaîne // Contenu du buffer
    PortSérie est un entier = 1 // Port série COM1
     
    // Ouverture et initialisation du port série COM1
    SI sOuvre(PortSérie,5000,5000) ALORS
    // Lecture du code-barres
    // Récupération du nombre d'octets en attente
    NbOctetAttente = sDansFileEntrée(PortSérie)
    // Récupération de la valeur du code-barres uniquement
    // si au moins 13 caractères ont été lus
    SI NbOctetAttente >= NBCarALire ALORS
    BufferPrn = sLit(PortSérie, NbOctetAttente)
    // Récupération des 13 premiers caractères lus
    BufferPrn = Gauche(BufferPrn, 13)
    // Affichage de la valeur du code-barres dans le
    // champ de saisie "SAI_CodeBarre"
    SAI_CodeBarre = BufferPrn
    FIN
    FIN
    mais je ne sais pas ou l’inséré pour pouvoir récupéré le code du produit sur le champ de saisie.
    Merci de me répondre et bonne chance à tous le monde.

    tag [WD14] ajouté par L.nico merci d'y penser à l'avenir

  2. #2
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Bonjour, ajoute par exemple un "BTN_Lecture" sur la fenêtre, puis met ton code dans "Clic sur BTN_Lecture" .

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    merci pour ta réponse,
    mais je voudrais récupérer le code barre existant sur un produit via un appareil douchette dans un champ de saisie sans clic sur aucun bouton.
    Hier, j'ai essayé pas mal de chose et j'ai constaté que lorsque j'utilise la douchette, le code barre était bien récupéré sur le champ de saisie mais avec des valeurs bizzare -&_ç, de plus les valeurs sont ensuite écrasées par le curseur qui pointe à nouveau sur le champ.

  4. #4
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 93
    Points : 95
    Points
    95
    Par défaut
    bonjour,

    Il faudra un jour que je reprenne des cours de douchette

    Chez nous, la douchette s'insère entre le clavier et l'ordi (port ps-2), et agit comme un clavier. il n'y a rien à programmer, juste à demander à l'utilisateur de mettre le curseur de saisie sur le bon champ (heu Texte, hein! bien sûr).

    Maintenant que la technologie usb existe, je suggère les douchettes dont la notice indique : 'Lecture par émulation clavier'

    au bout d'un moment, je me suis demandé l'effet que ferait la saisie de mots-clé par douchette interposée !

  5. #5
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 93
    Points : 95
    Points
    95
    Par défaut
    Re

    Ah oui, pour les valeurs bizarres ! :-)

    elle proviennent du fait que le codage des étiquettes est différent du codage préprogrammé dans la douchette.

    il faut
    - faire une recherche pour connaitre le codage des étiquettes
    - reprogrammer la douchette à l'aides du manuel :
    - un clic sur le code-barre de début de programmation
    - un clic sur le code-barre d'encodage
    - un clic sur le code-barre de fin de programmation


  6. #6
    Membre averti
    Homme Profil pro
    Développeur Freelance
    Inscrit en
    Juin 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Freelance

    Informations forums :
    Inscription : Juin 2009
    Messages : 221
    Points : 371
    Points
    371
    Par défaut
    Tu as essayé ne mettant le mode majuscule sur le clavier ?
    Il faudra le faire par programmation sinon.
    &=1
    é=2
    "=3
    ç=9

    Avec des valeurs bizarre -&_ç
    ca doit faire 6189 si je ne m'abuse pas...

    J'ai pas mal travaillé avec des douchette, donc je connaissais le truc.
    Tu peux mettre résolu, tu vas vite voir si ca marche.
    Par contre il faut que tu actives le mode majuscules par programmation ou bien que tu transformes les caractères reçus, la deuxième solution étant la plus viable, mais je pense que c'est peut-êtrre l'objet d'un nouveau post, à toi de voir.
    C'est tout de même plus sympa pour les utilisateurs de rester dans le mode qu'ils ont choisi (majuscules ou pas), donc...

  7. #7
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    +1 pour Léonidas!

    C'est toujours la même chose avec ce fichu majuscule

    Pour rémédier à ceci tu pourras activer par programmation la majuscule à l'entrée du champ de saisie du code barre.

    Code Entrée Champ de saisie :


    Puis au niveau de la procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    PROCEDURE CapsLook(LOCAL bStatus est un booléen = Faux)
     
    VK_CAPITAL1 est entier = 0x14 // CapsLock
    nVK_NUMLOCK est entier = 0x90 // NumLock
    nVK_SCROLL est entier = 0x91 // ScrollLock
    bEtatInitial est un booléen
     
    nVK_Touche est entier = VK_CAPITAL1
    bEtatInitial = API("USER32","GetKeyState",nVK_Touche)
    SI bEtatInitial <> bStatus ALORS
    	API("USER32","keybd_event",nVK_Touche,0x45,0x1,0)
    	API("USER32","keybd_event",nVK_Touche,0x45,0x2,0)
    FIN
     
    RENVOYER bEtatInitial
    Bon DEV

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Bonjour à tous,

    Un lecteur codes barres, qu'il soit sous forme de douchette ou non, en interface USB ou PS2 se contente d'envoyer les caractères décodés vers le PC comme s'ils avaient été tapés au clavier. Donc peu importe le langage de programmation, il suffit d'utiliser une zone qui accepte des caractères alphanumériques provenant du clavier.
    Espérant vous avoir aidé.

    Sergeksl

  9. #9
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 998
    Points
    1 998
    Par défaut
    Hello,
    SergeKSL a raison à 100%. De plus, toutes les douchettes possèdent une interface de programmation par code barre. Il faut entrer la séquence de début de code en scannant sur le livret, puis entrer les différentes séquences, et enfin, rescanner soit le même code barre de début (debut/fin) ou alors le code barre spécifique de fin.
    mais il faut que vous sachiez que tous les code barre sont par défaut en qwerty et non en azerty, et que par conséquent, seule la programmation fera fonctionner correctement le lecteur.

Discussions similaires

  1. Réponses: 10
    Dernier message: 28/07/2015, 11h51
  2. Réponses: 3
    Dernier message: 14/05/2014, 13h56
  3. Réponses: 0
    Dernier message: 13/05/2014, 17h15
  4. Réponses: 9
    Dernier message: 09/10/2008, 08h37
  5. Réponses: 2
    Dernier message: 10/01/2007, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo