Capturer Code à barre

Résolu
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014 - 17 juil. 2012 à 17:26
 Utilisateur anonyme - 11 janv. 2013 à 17:49
bonjour,

j'ai une application de pointage d'articles dans laquelle l'utilisateur donne le numéro de Bon de Livraison et procède à un pointage par informatique en écrivant les 4 premières lettres des articles présents dans le bon de livraison (un par un) et l'application vérifie la quantité et la disponibilité du produit tapé dans le bon de livraison,
Maintenant je veux procéder par le pointage par code à barre dans ce cas, je veux bien que dans le même textbox un utilisateur peut soit donner le code à barre de l'article soit écrire les premières 4 lettres de son nom et par la suite le programme lance la recherche soit par code à barre ou par désignation.L'évènement que j'utilise maintenant est TextChanged().
Voici le Code que j'utilise pour la recherche par désignation, et j'ai selui par code à barre mais je ne sait pas quelle condition mettre pour lancer soit la recherche par désignation soit celle par code à barre.

 Public Sub load_art()
        Dim reader As SqlDataReader
        If statut = "Non" Then
            cnx.ConnectionString = chaine
            '    Try
            cnx.Open()
            Dim cmd As New SqlCommand("SELECT COUNT(AR_Design) From F_ARTICLE where AR_Design like '" & Pointage.TextBox5.Text & "%' AND AR_Design <> 'BON URGENT'", cnx)

            reader = cmd.ExecuteReader()
            reader.Read()
            numrow = reader(0)
            reader.Close()
            cnx.Close()
           
            pagingDS.Clear()
            Dim connectionString As String = chaine
            Dim sql As String = "SELECT Distinct AR_Ref,AR_Design From F_ARTICLE where AR_Design like '" & Pointage.TextBox5.Text & "%' AND AR_Design <> 'BON URGENT' "
            Dim connection As New SqlConnection(connectionString)
            pagingAdapter = New SqlDataAdapter(sql, connection)
            connection.Open()
            Dim i As Integer = 0
            pagingAdapter.Fill(pagingDS, scrollVal, 10, "F_Docligne")

            connection.Close()
            Pointage.DataGridView2.DataSource = pagingDS
            Pointage.DataGridView2.DataMember = "F_Docligne"
            Pointage.DataGridView2.Columns(0).Width = 60
            Pointage.DataGridView2.Columns(1).Width = 210
            pagingDS.Tables("F_Docligne").Columns(0).Namespace = "ID"
            For x As Integer = 0 To Pointage.DataGridView2.Rows.Count - 1
                pagingDS.Tables("F_Docligne").Rows(x).Item(0) = i
                i = i + 1
            Next
            Pointage.DataGridView2.Columns(0).Name = "ID"
            Pointage.TextBox5.ReadOnly = True
            Pointage.TextBox6.ReadOnly = False
            Pointage.DataGridView2.Focus()
        End If
    End Sub

Mais je ne sait pas comment y procéder.
Quelqu'un peu m'aider.

Merci

14 réponses

Utilisateur anonyme
19 juil. 2012 à 22:25
comment connaître le caractère de fin de lecture renvoyer par la douchette

Tu peux le détecter comme ceci dans un événement KeyUp :
Dim codecaractere As Integer = Convert.ToInt32(textbox1.text.last)

La table ascii donne les correspondances comme ceci :
48 <-------> 57 |  65 <------------> 90  |  99 <------------> 122
    chiffres       lettres majuscules        lettres minuscules

A toi de voir le code de fin de lecture que donne ta douchette.
3
Utilisateur anonyme
17 juil. 2012 à 18:19
Bonjour,
Y a t-il des chiffres dans les 4 premières lettres des noms des articles à saisir ?
Les codes barres contiennent-ils uniquement des chiffres ?
0
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
17 juil. 2012 à 20:57
bonjour,

C'est ça le problème j'ai penser à quelque chose comme ça, mais les premières lettre des noms des articles peuvent contenir des chiffres et de même pour les codes à barres, peuvent contenir des chiffres et des lettres.
0
Utilisateur anonyme
18 juil. 2012 à 18:37
Une douchette envoie un caractère de fin de lecture si elle est bien configurée. Et sur certaines douchettes, on peut choisir ce caractère.
L'utilisateur, lui, appuiera sur entrée pour valider sa saisie.

Il te suffit donc, dans ton événement TextChanged, d'analyser le dernier caractère de la chaîne et, d'après la longueur de cette dernière, agir en conséquence.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
18 juil. 2012 à 19:07
Et utilise l'événement KeyUp du textbox plutôt
0
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
18 juil. 2012 à 19:47
Merci bien banana32,
En effet pour faciliter la tâche à l'utilisateur j'ai voulu que le passage de l'article passe directement sans avoir à appuyer sur la touche entrer tout comme dans les magasins.
En faite j'ai essayer de lancer deux requêtes de suite la première vérifie si ce qui est dans le textbox ressemble à un code à barre d'un article présent dans la base, si non lancer une deuxième requête de recherche par désignation.
Mais je pense que ce n'est pas solide comme solution.
0
Utilisateur anonyme
18 juil. 2012 à 21:34
Ou alors cumuler les deux requête (AND) jusqu'à n'obtenir qu'un seul résultat.
0
Utilisateur anonyme
18 juil. 2012 à 21:58
Ou alors tu observes quand même le dernier caractère comme expliqué plus haut.
Si c'est l'utilisateur qui tape, en te servant de KeyUp, au delà de 3 caractères saisis, comme le dernier caractère n'est pas un retour de ligne tu vas chercher une correspondance par nom de produit dans la base de données.
Si c'est la douchette, dans KeyUp aussi, il y aura forcément un retour de ligne et donc tu iras chercher dans ta base par code barres.
0
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
19 juil. 2012 à 20:43
le problème reste toujours le même,comment connaître le caractère de fin de lecture renvoyer par la douchette
0
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
19 juil. 2012 à 22:47
Merci énormément pour ton aide cher ami.
0
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
10 janv. 2013 à 14:48
re bonjour,

en testant le lecteur code à barre j'ai trouvé que la fin de lecture est significative à l'appuie sur la touche entrer du clavier, maintenant je veux savoir comment est ce que c'est possible de différencier entre l'appuie sur la touche entrer après saisie du nom de l'article de celle après la lecture du code à barre par la douchette.
Merci
0
Utilisateur anonyme
10 janv. 2013 à 19:21
Essaie de paramétrer ta douchette de telle manière qu'elle envoie un autre code de touche à la fin de la lecture du code. Regarde la notice livrée avec ta douchette.
0
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
11 janv. 2013 à 16:32
bonjour,
j'ai fait ça et ça a marché mais le grand problème est qu'on travaille sur deux applications, la première achetée et marche avec la configuration tel que expliquées avant et la deuxième que j'ai programmé.
je ne peux pas procédé à cette solution.
Mais en cherchant sur le net j'ai découvert qu'en connectant le lecteur code à barre au port USB un clavier s'ajoute au panneau de configuration, pourrai je vérifier si l'appuie sur une touche provient de ce clavier ou non?
0
Utilisateur anonyme
11 janv. 2013 à 17:49
Ta douchette peut aussi surement 'préfixer' un code barre; c'est à dire qu'elle placera un (ou plusieurs) caractère supplémentaire au début de la chaîne.
Une fois de plus, regarde la notice technique de ta douchette.
0
Rejoignez-nous