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 6 et antérieur Discussion :

Code à Barre


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 378
    Par défaut Code à Barre
    Bonjour,
    Je n’ai pas trouvé ou je postule ce sujet, mais je savait que développez est mon ami.
    Je veux imprimer des étiquettes code barre, pour cela j’ai cherchait une police et j’ai réussi à la trouver, tout marche bien, sauf que après l’impression le lecteur code à barre n’arrive pas à lire ces codes, vous trouverez ci-joint un fichier avec les codes, veuillez me dire si les codes est erroné ou quoi ?
    Merci infiniment.
    Images attachées Images attachées  

  2. #2
    Membre éprouvé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Par défaut
    salut,

    peux-tu nous montrer ton code pour faire le code barre? quelle police utilises-tu?

    Merci de nous renseigner davantage.

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 378
    Par défaut
    Vous trouverez ci-joint les 2 polices.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Citation Envoyé par Asdorve Voir le message
    salut,

    peux-tu nous montrer ton code pour faire le code barre? quelle police utilises-tu?

    Merci de nous renseigner davantage.
    Salut, ton image est de toutes façons trop pixelisées pour faire un essai (que j'ai tout de même fait et qui ne fonctionne pas).
    Si tu code bien en VB6, mes nous les lignes de commandes de construction du dit code-barre et de la sortie impression.
    Dans mes sources sur DVP (voire signature plus bas) tu peux trouver un générateur de code-barre, avec un projet de démonstration.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Le problème du code barr avec des polices est de générer la sequence de caractères qui doit être imprimée.
    Si tu veux imprimer du ean, il y a deux type, Ean8 et Ean13, tous deux ne sont capables que d'imprimer des chiffres. il faut en plus un code debut et un code fin, avant la fin, il y a un checksum. De plus, suivant la postion d'un caractères dans la chaine, la forme de la barre change. Il faut donc un algo pour construire une chaine correspondant à la police.
    Si tu veux imprimer en code 3of9, c'est un peu plus simple, il faut ajouter une '*' en debut et fin de chaine, et tu imprimes avec ta police

    Exemple de code de calcul pour l'ean13
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Public Function ean13$(Chaine$)
      'Cette fonction est régie par la Licence Générale Publique Amoindrie GNU (GNU LGPL)
      'This function is governed by the GNU Lesser General Public License (GNU LGPL)
      'V 1.1.1
      'Paramètres : une chaine de 12 chiffres
      'Parameters : a 12 digits length string
      'Retour : * une chaine qui, affichée avec la police EAN13.TTF, donne le code barre
      '         * une chaine vide si paramètre fourni incorrect
      'Return : * a string which give the bar code when it is dispayed with EAN13.TTF font
      '         * an empty string if the supplied parameter is no good
      Dim i%, CheckSum%, first%, CodeBarre$, tableA As Boolean
      ean13$ = ""
      'Vérifier qu'il y a 12 caractères
      'Check for 12 characters
      If Len(Chaine$) = 12 Then
        'Et que ce sont bien des chiffres
        'And they are really digits
        For i% = 1 To 12
          If Asc(Mid$(Chaine$, i%, 1)) < 48 Or Asc(Mid$(Chaine$, i%, 1)) > 57 Then
            i% = 0
            Exit For
          End If
        Next
        If i% = 13 Then
          'Calcul de la clé de contrôle
          'Calculation of the checksum
          For i% = 12 To 1 Step -2
            CheckSum% = CheckSum% + Val(Mid$(Chaine$, i%, 1))
          Next
          CheckSum% = CheckSum% * 3
          For i% = 11 To 1 Step -2
            CheckSum% = CheckSum% + Val(Mid$(Chaine$, i%, 1))
          Next
          Chaine$ = Chaine$ & (10 - CheckSum% Mod 10) Mod 10
          'Le premier chiffre est pris tel quel, le deuxième vient de la table A
          'The first digit is taken just as it is, the second one come from table A
          CodeBarre$ = Left$(Chaine$, 1) & Chr$(65 + Val(Mid$(Chaine$, 2, 1)))
          first% = Val(Left$(Chaine$, 1))
          For i% = 3 To 7
            tableA = False
             Select Case i%
             Case 3
               Select Case first%
               Case 0 To 3
                 tableA = True
               End Select
             Case 4
               Select Case first%
               Case 0, 4, 7, 8
                 tableA = True
               End Select
             Case 5
               Select Case first%
               Case 0, 1, 4, 5, 9
                 tableA = True
               End Select
             Case 6
               Select Case first%
               Case 0, 2, 5, 6, 7
                 tableA = True
               End Select
             Case 7
               Select Case first%
               Case 0, 3, 6, 8, 9
                 tableA = True
               End Select
             End Select
           If tableA Then
             CodeBarre$ = CodeBarre$ & Chr$(65 + Val(Mid$(Chaine$, i%, 1)))
           Else
             CodeBarre$ = CodeBarre$ & Chr$(75 + Val(Mid$(Chaine$, i%, 1)))
           End If
         Next
          CodeBarre$ = CodeBarre$ & "*"   'Ajout séparateur central / Add middle separator
          For i% = 8 To 13
            CodeBarre$ = CodeBarre$ & Chr$(97 + Val(Mid$(Chaine$, i%, 1)))
          Next
          CodeBarre$ = CodeBarre$ & "+"   'Ajout de la marque de fin / Add end mark
          ean13$ = CodeBarre$
        End If
      End If
    End Function

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 378
    Par défaut
    Merci Delbeke, mais comment je vais utiliser cette function?

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Public Function ean13$(Chaine$)
      'Cette fonction est régie par la Licence Générale Publique Amoindrie GNU (GNU LGPL)
      'This function is governed by the GNU Lesser General Public License (GNU LGPL)
      'V 1.1.1
      'Paramètres : une chaine de 12 chiffres
      'Parameters : a 12 digits length string
      'Retour : * une chaine qui, affichée avec la police EAN13.TTF, donne le code barre
      '         * une chaine vide si paramètre fourni incorrect
      'Return : * a string which give the bar code when it is dispayed with EAN13.TTF font
      '         * an empty string if the supplied parameter is no good
      Dim i%, CheckSum%, first%, CodeBarre$, tableA As Boolean
      ean13$ = ""
      'Vérifier qu'il y a 12 caractères
      'Check for 12 characters
      If Len(Chaine$) = 12 Then
        'Et que ce sont bien des chiffres
        'And they are really digits
        For i% = 1 To 12
          If Asc(Mid$(Chaine$, i%, 1)) < 48 Or Asc(Mid$(Chaine$, i%, 1)) > 57 Then
            i% = 0
            Exit For
          End If
        Next
        If i% = 13 Then
          'Calcul de la clé de contrôle
          'Calculation of the checksum
          For i% = 12 To 1 Step -2
            CheckSum% = CheckSum% + Val(Mid$(Chaine$, i%, 1))
          Next
          CheckSum% = CheckSum% * 3
          For i% = 11 To 1 Step -2
            CheckSum% = CheckSum% + Val(Mid$(Chaine$, i%, 1))
          Next
          Chaine$ = Chaine$ & (10 - CheckSum% Mod 10) Mod 10
          'Le premier chiffre est pris tel quel, le deuxième vient de la table A
          'The first digit is taken just as it is, the second one come from table A
          CodeBarre$ = Left$(Chaine$, 1) & Chr$(65 + Val(Mid$(Chaine$, 2, 1)))
          first% = Val(Left$(Chaine$, 1))
          For i% = 3 To 7
            tableA = False
             Select Case i%
             Case 3
               Select Case first%
               Case 0 To 3
                 tableA = True
               End Select
             Case 4
               Select Case first%
               Case 0, 4, 7, 8
                 tableA = True
               End Select
             Case 5
               Select Case first%
               Case 0, 1, 4, 5, 9
                 tableA = True
               End Select
             Case 6
               Select Case first%
               Case 0, 2, 5, 6, 7
                 tableA = True
               End Select
             Case 7
               Select Case first%
               Case 0, 3, 6, 8, 9
                 tableA = True
               End Select
             End Select
           If tableA Then
             CodeBarre$ = CodeBarre$ & Chr$(65 + Val(Mid$(Chaine$, i%, 1)))
           Else
             CodeBarre$ = CodeBarre$ & Chr$(75 + Val(Mid$(Chaine$, i%, 1)))
           End If
         Next
          CodeBarre$ = CodeBarre$ & "*"   'Ajout séparateur central / Add middle separator
          For i% = 8 To 13
            CodeBarre$ = CodeBarre$ & Chr$(97 + Val(Mid$(Chaine$, i%, 1)))
          Next
          CodeBarre$ = CodeBarre$ & "+"   'Ajout de la marque de fin / Add end mark
          ean13$ = CodeBarre$
        End If
      End If
    End Function

  7. #7
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Tout depends de la façon dont tu as prévu d'imprimer ton etiquette
    par exemple, si tu avais prévu

    Tu remplaces par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Printer.Print ean13(Code)
    Reste à savoir si ce code est adapté à ta police ean, ce qui n'est pas evident.
    Mais l'idée est là

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impression étiquettes codes barre ?
    Par donia dans le forum QuickReport
    Réponses: 4
    Dernier message: 14/03/2016, 10h20
  2. [CR8.5] Utilisation des codes barre
    Par Robert dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 20/01/2005, 16h13
  3. [HARDWARE] [Conseil] Lecteur code barre
    Par Ni(o dans le forum Périphériques
    Réponses: 4
    Dernier message: 22/06/2004, 19h14
  4. [CR 8.5] Impression Codes Barre
    Par Phy dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/10/2003, 12h18
  5. Réponses: 5
    Dernier message: 24/04/2003, 22h08

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