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

VB.NET Discussion :

Scanner code barre DataGridView


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut Scanner code barre DataGridView
    Salut le forum j'ai un formulé qui comporte deux datagridview l'un lié à la base de données 'dgvProduit' et l'autre qui doit récupéré les données 'dgvVente' puis un testBox qui me permet de stocké la valeur du code barre scanner.
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Private Sub txtBar_TextChanged(sender As Object, e As EventArgs) Handles txtBar.TextChanged
            Try
     
                Call Connecter()
     
                Dim da = New SqlDataAdapter(" SET LANGUAGE FRENCH
    SELECT A.IdClients as IdClients,C.Nom AS Client,A.[Idarticle] AS [Idarticle],B.IdRayon AS IdRayon,B.Designation As Article
    ,(CAST( A.[Idarticle] AS bigint)*99999) AS [Idarticlebarcode], 1 as Qte,A.Pu AS Pu
    FROM [dbo].[Prixvente] A
    INNER JOIN [dbo].[article] B ON B.Idarticle=A.Idarticle
    INNER JOIN [dbo].[Clients] C ON C.IdClients=A.IdClients
    where C.Nom='" & cmbstation.Text & "' AND (CAST( A.[Idarticle] AS bigint)*99999) = '" & txtBar.Text.ToString & "'", con)
                Dim ds As New DataSet
                da.Fill(ds, "[A]")
     
                dgvProduits.DataSource = ds.Tables(0)
                ds.Dispose()
                dgvVentesP.AllowUserToAddRows = False
                dgvVentesP.Rows.Add(dgvProduits.Rows(0).Cells("IdClients").Value, dgvProduits.Rows(0).Cells("Client").Value, dgvProduits.Rows(0).Cells("Idarticle").Value, dgvProduits.Rows(0).Cells("IdRayon").Value,
                             dgvProduits.Rows(0).Cells("Article").Value, dgvProduits.Rows(0).Cells("Idarticlebarcode").Value, dgvProduits.Rows(0).Cells("Qte").Value, dgvProduits.Rows(0).Cells("Pu").Value)
     
                Call deconnecter()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
     
            If txtBar.Text <> "" Then
                txtTEST.Text = txtBar.Text
            End If
     
            Try
     
     
                Dim sum As Decimal = 0
                For i As Integer = 0 To dgvVentesP.Rows.Count - 1
                    sum += dgvVentesP.Rows(i).Cells(7).Value
                Next
                lblTotal.Text = sum
            Catch ex As Exception
     
            End Try
     
     
        End Sub
    le problème est que après chaque scanne, j'ai plusieurs lignes vide qui s'ajoute.
    Nom : SCANNEBARRE.png
Affichages : 171
Taille : 28,2 Ko
    La grande question est comment corrigé se problème?

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Supposant que le code barres lu vient dans un TextBox, peut-être que la clause WHERE de la requête devrait tenir compte de ce TextBox ...


  3. #3
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut
    Bonsoir effectivement c'est ce qui est fait le code barre lu vient dans un texbox et c'est ce texbox qui est dans la clause where de m'a requête.

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    J'ai du mal voir ...

    Cela vient du fait que dans l'affection du DataGridView, je vois ... dgvProduits.Rows(0).Cells("Idarticlebarcode").Value ... et que je que cet ("Idarticlebarcode") est bien caché dans la requête.

    Ne peux-tu te référer directement au champ "IdArticle" ?
    Ce ...(CAST( A.[Idarticle] AS bigint)*99999) est-il nécessaire ? Et puis, cela doit donner un numérique ? non ? Dans ce cas, il faut retirer les simples quotes de la fin de la requête : ... AND (CAST( A.[Idarticle] AS bigint)*99999) = " & txtBar.Text.ToString , con).


  5. #5
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut
    Bonsoir Phil Rob
    mon code barre est à 9 chiffres, lorsque je scanne une code barre elle m'affiche les chiffres un et à chaque chiffre une ligne vide se créé dans le datagridview
    voilà le véritable problème.
    Images attachées Images attachées  

  6. #6
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonsoir,

    Là, je ne comprends pas ...

    Le code à barres, si tu le lis dans la DB avec le SELECT, il faudrait savoir sous quelle forme il est enregistré : Numérique ou Alphanumérique.
    Quoi qu'il en soit, il doit être lu en une fois et aucun caractère ne diot perturber son affichage dans une cellule de DataGridView ou autre.

    Par ailleurs, et ceci ne correspond pas au morceau de code que tu as posté, suite à la lecture d'un code à barres, le scanner retourne un chaîne de caractères. Si on le veut absolument en numérique, il faut convertir la chaîne, par ex. CodeNumerique = CType(CodeChaine, Long). Perso, je n'y vois aucun intérêt vu que ce code ne fera jamais l'objet d'opérations arithmétiques.
    Selon ce raisonnement, il suffit de lire les codes à barres de la DB comme une simple String, laquelle doit se placer sans difficulté dans n'importe quelle zone de texte, dans un DataGridView aussi.

    Pour avancer dans la compréhension du problème, tu écris le dgvVentesP par copie d'une ligne du dgvProduits : ce dgvProduits est-il correct ?
    S'il ne l'est pas, fais, teste la lecture du code à barres comme simple chaîne (sans ...(CAST( A.[Idarticle] AS bigint)*99999)...).

    Une remarque, le ToString n'est pas nécessaire pour une propriété Text, elle est déjà String : txtBar.Text mais ceci n'a rien à voir avec ton problème.

    ...

    Suite après relecture ce matin, quelques questions :

    1. Peux-tu m'expliquer pourquoi l'illustration que tu nous soumets présente 2 zones d'affichage du code à barres, mais surtout pourquoi chacune montre ce code 2 fois (concaténé à lui-même). Je ne vois pas l'explication dans le code que tu as envoyé.
    2. Toujours sur cette illustration, le DGV à l'avant-plan (celui qui montre une ligne pour le client n°1 avec le code à barres 331996680) est-il dgvVentesP ou dgvProduits ?
    3. Est-il normal que le DGV en arrière-plan ne contienne aucun ligne ?



    ...

Discussions similaires

  1. Scanner code barre et récupérer des infos
    Par sbaptistes dans le forum Android
    Réponses: 1
    Dernier message: 13/12/2023, 18h39
  2. [Clé USB] Scanner code barre usb non reconnu
    Par franot65 dans le forum Périphériques
    Réponses: 1
    Dernier message: 04/11/2016, 20h20
  3. Scanner code barre avec laser
    Par timite dans le forum Android
    Réponses: 1
    Dernier message: 15/09/2015, 08h41
  4. Access 2010 et diffusion Web, utilisation sur scanners Code à barres
    Par Fredo67 dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 28/08/2013, 09h51
  5. Compilateur pour Scanner Code barre
    Par philou22 dans le forum Autres systèmes
    Réponses: 0
    Dernier message: 28/04/2010, 10h41

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