joujma5
Messages postés152Date d'inscriptionsamedi 11 novembre 2006StatutMembreDerniè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.
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 ?
joujma5
Messages postés152Date d'inscriptionsamedi 11 novembre 2006StatutMembreDerniè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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
joujma5
Messages postés152Date d'inscriptionsamedi 11 novembre 2006StatutMembreDerniè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.
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.
joujma5
Messages postés152Date d'inscriptionsamedi 11 novembre 2006StatutMembreDerniè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
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.
joujma5
Messages postés152Date d'inscriptionsamedi 11 novembre 2006StatutMembreDerniè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?
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.