Cree codebar

petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 - 20 oct. 2004 à 21:55
cs_Sator2 Messages postés 137 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 10 septembre 2006 - 3 oct. 2006 à 14:16
Salut je voudrais cree un code bar par rapport a un nombre de 4 chiffre
esque c'est possible
c'est juste pour que le code bar soirt visible a l'ecrant pas
besoin d'imprimer
juste donner 4 chiffres et il me fait un code bar
Merci
Aidez moi svp

10 réponses

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
20 oct. 2004 à 22:37
Look at : http://www.vbfrance.com/code.aspx?ID=8072

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 1
20 oct. 2004 à 22:40
et sa marche comment il faut faire quoi
il y a pas un text box ou autre ?????
suis novice de chez novice
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
20 oct. 2004 à 22:44
Une fois que tu as télécharger la source, lance la, je viens de la testé et tu peux mettre autant de chiffre que tu veux.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 1
20 oct. 2004 à 22:45
elle ne marche pas chez moi
je suis en vb5
et il veux pas la faire aller
0

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

Posez votre question
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
20 oct. 2004 à 22:59
Ok, créer un nouveau projet avec un contrôle textbox que tu va appelé : NoCB et un CommandButton nommé : Generation

ensuite met le code suivant :

Private Sub Generation_Click()
    a = CodeBarreCode39(NoCB.Text, 2700, 700, 800, 2000)
    Printer.EndDoc
End Sub

'==============================CodeBarreCode39======================================'
'Cette méthode crée le code binaire en code 39 du code barre pCodeBar. Elle l'envoie'
'à la méthode ImpCodeBarre qui imprime le code barre. Ensuite elle imprime le numéro'
'de code barre en dessous. La taille de la police est modifiée en fonction de la    '
'taille du code barre.                                                              '
'                                                                                   '
'Param : - pCodeBar : code barre à imprimer                                         '
'        - Col,Lig : Position d'impression                                          '
'        - Hauteur : Hauteur du code barre                                          '
'        - Largeur : Largeur du code barre (Si le code barre est illisible, il faut '
'                    augmenter cette largeur) ex : pour la Smart Label Printer, la  '
'                    largeur minimale vaut 1750 en dessous, le CB est illisible     '
'                                                                                   '
'==================================================================================='Public Function CodeBarreCode39(pCodeBar As String, Col As Long, Lig As Long, Optional Hauteur As Long 800, Optional largeur As Long 1500)

    Dim TJA(10) As String
    Dim CodeBar As String
    Dim Chiffre As Long
    Dim Ind As Long
    Dim CodeChiffre As String ' Profil binaire des traits
    Dim Lettre As String '
    Dim Epaisseur1Trait As Double ' Epaisseur d'un trait
    Dim Decalage As Long
    
    CodeBar = pCodeBar
    
    ' initialisation du jeu de caractères pour code barre Code 39
    ' Le TJA(10) correspond au caractère de début et de fin du code barre (caractère *)
    TJA(0) = "0001101000"
    TJA(1) = "1001000010"
    TJA(2) = "0011000010"
    TJA(3) = "1011000000"
    TJA(4) = "0001100010"
    TJA(5) = "1001100000"
    TJA(6) = "0011100000"
    TJA(7) = "0001001010"
    TJA(8) = "1001001000"
    TJA(9) = "0011001000"
    TJA(10) = "0100101000"
    
    '//==== Creation du mask représentant le code barre (série de 1, de 0)    '//"0" une bande étroite    '//"1" une bande large    '//"-" diminution de la hauteur du code barre (pour mettre le texte en dessous)    '//"+" Augmentation de la hauteur du code barre
    CodeChiffre = TJA(10) + "-"
    
    For Ind = 1 To Len(CodeBar)
        Chiffre = Val(Mid(CodeBar, Ind, 1))
        CodeChiffre = CodeChiffre + TJA(Chiffre)
    Next Ind
    
    '============== GUARD PATTERN
    CodeChiffre = CodeChiffre + "+" + TJA(10)
    
    
    '==== Impression du mask sous forme de code barre
    Decalage = 30
    Epaisseur1Trait = ImpCodeBarre(Lig, Col, Hauteur, largeur, CodeChiffre, Decalage)
    
    '==== Impression du code serie en dessous du code barre
    ' Crée une police de taille proportionnelle à la largeur de code barre
    
    Debug.Print "FontSize = " & Printer.FontSize
    Dim FontSizeCB As Integer
    FontSizeCB = Fix(0.8 * Epaisseur1Trait)
    
    Debug.Print "FontSize = " & FontSize
    Debug.Print "ScaleMode = " & Printer.ScaleMode
    
    Printer.CurrentX = (Col + 13 * Epaisseur1Trait)
    Printer.CurrentY = (Lig + Hauteur + 10 - Decalage)
    Printer.FontName = "Arial"
    Printer.FontSize = FontSizeCB
    Dim CodeBar1 As String
    ' CodeBar1 est le numéro de code barre avec un espace entre chaque caractère
    CodeBar1 = ""
    For i = 1 To Len(CodeBar) - 1
        essai = Mid(CodeBar, i, 1)
        CodeBar1 = CodeBar1 & essai & " "
    Next i
    essai = Mid(CodeBar, Len(CodeBar), 1)
    CodeBar1 = CodeBar1 & essai
    Printer.Print (CodeBar1)
End Function

'=============================ImpCodeBarre=========================================='
'Cette méthode imprime le code barre code 39 converti en binaire.                   '
'                                                                                   '
'Param : - Lig, Col : La position du code barre                                     '
'        - nHauteur, nLargeur : La taille du code barre                             '
'        - szCodeBarre : Le code barre converti en binaire code 39                  '
'        - Decalage : La quantité à soustraire à nHauteur lorsqu'il y a un "-" dans '
'                     szCodeBarre ou à ajouter s'il y a un "+"                      '
'                                                                                   '
'Return : la largeur d'un trait élémentaire                                         '
'                                                                                   '
'==================================================================================='
Private Function ImpCodeBarre(Lig As Long, Col As Long, nHauteur As Long, nLargeur As Long, szCodeBarre As String, Optional Decalage As Long)
    
    Dim NumCar As Long
    Dim NbTrait As Long
    Dim BarreCourte As Double ' Epaisseur d'un trait élémentaire
    Dim BarreLarge As Double
    Dim j As Long
    Dim X As Double
    Dim nLen As Long
    Dim NCarac As Long
    Dim Hauteur As Long
    Dim Barre As Boolean
    Dim nBarresNoires As Double
    Dim nBarresBlanches As Double
    nBarresNoires = 0
    nBarresBlanches = 0
    Barre = True                                ' si Barre vaut True c'est une barre qu'il faut imprimer
                                                ' sinon c'est un espace
    nLen = 0
    For i = 1 To Len(szCodeBarre)
        If Mid(szCodeBarre, i, 1) <> "-" Or Mid(szCodeBarre, i, 1) <> "+" Then
            Select Case Mid(szCodeBarre, i, 1)
               Case "1"
                    If Barre = True Then
                        nBarresNoires = nBarresNoires + 2
                        Barre = False
                    Else
                        nBarresBlanches = nBarresBlanches + 1.5
                        Barre = True
                    End If
                Case "0"
                    If Barre = True Then
                        nBarresNoires = nBarresNoires + 1
                        Barre = False
                    Else
                        nBarresBlanches = nBarresBlanches + 1
                        Barre = True
                    End If
            End Select
            nLen = nLen + 1                     ' Nombre de barres et espaces à analyser
        End If
    Next i
    NCarac = nLen / 9
    ' Calcul de l'épaisseur d'un trait suivant la largeur demandée et le nombre de traits
    BarreCourte = nLargeur / (nBarresNoires + nBarresBlanches)
    BarreLarge = BarreCourte * 1.5         ' Un caractère est codé par 16 barres élémentaires (BE)
                                           ' (3 grandes de 1.5 BE et 6 petites de 1 BE)
                                           ' Il faut aussi ajouter une BE d'espacement
    BarreCourteBlanche = BarreCourte * 1.5
    BarreLargeBlanche = BarreCourteBlanche * 1.5
    BarreCourteNoire = BarreCourte * (1 - 0.5 * nBarresBlanches / nBarresNoires)
    BarreLargeNoire = BarreCourteNoire * 2
    'Il faut distiguer la largeur des bandes noires de la largeur des bandes blanches
    'pour que l'impression des étiquettes se fasse correctement. En effet, l'imprimant
    'Smart Label Printer imprime les bandes blanches de taille inférieure aux bandes noires
    '
    'Si cela vous gène utilisez BarreCourte à la place de BarreCourteBlanche et BarreCourteNoire
    'et BarreLarge à la place de BarreLargeBlanche et BarreLargeNoire
    'Dans ce cas là, il faudra aussi modifier le calcul du nombre de barres :
    '    Dans le For i = 1 To Len(szCodeBarre) remplacez :
    '       - nBarresNoires = nBarresNoires + 2
    '    Par :
    '       - nBarresNoires = nBarresNoires + 1.5
    Hauteur = nHauteur
    NumCar = 1
    Do While NumCar <= nLen
        Select Case Mid(szCodeBarre, NumCar, 1)
            Case "-"
                Hauteur = Hauteur - Decalage
                NumCar = NumCar + 1
            Case "+"
                Hauteur = Hauteur + Decalage
                NumCar = NumCar + 1
            Case "0"
                If Barre = True Then
                    Printer.DrawWidth = 1
                    Printer.Line (X + Col, Lig)-(X + BarreCourteNoire + Col, Lig + Hauteur), , BF
                    Barre = False
                    X = X + BarreCourteNoire
                Else
                    Barre = True
                    X = X + BarreCourteBlanche
                End If
                NumCar = NumCar + 1
            Case "1"
                If Barre = True Then
                    Printer.DrawWidth = 1
                    Printer.Line (X + Col, Lig)-(X + BarreLargeNoire + Col, Lig + Hauteur), , BF
                    X = X + BarreLargeNoire
                    Barre = False
                Else
                    X = X + BarreLargeBlanche
                    Barre = True
                End If
                NumCar = NumCar + 1
        End Select
    Loop
    
    'renvoyer
    ImpCodeBarre = BarreCourte

End Function

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 1
20 oct. 2004 à 23:03
oui sa marche comme sa
Mais il imprime directement sur l'imprimante
je sais que je suis compliquer mais je voudrais qu'il l'affiche sur
l'ecrant
car sur mon portable j'ai un scanner de type ls4008I
Voivi un lient pour voir le scanner

http://www.barcodemegastore.com/catalog/symbol/ls4008i-zoom.htm

Merci a toi
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
20 oct. 2004 à 23:05
Ok, essai de remplacer tout les "Printer" par des "Me"

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
20 oct. 2004 à 23:08
je viens de tester le remplacement, ça marche nikel !

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
21 oct. 2004 à 00:22
www.adams1.com

un site en anglais mais tres riche en info pour les developpeurs.

:-p [mailto:cyberscorp2004@msn.com MSN] :big) [mailto:frop01@yahoo.fr YAHOO] >:)

Membre du club CodeS-SourceS
0
cs_Sator2 Messages postés 137 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 10 septembre 2006
3 oct. 2006 à 14:16
pour les gens qui bosse en option explicite et qui sont fénéant et qui par conscéquant aiment le copier coller....

Dim a, i, essai, BarreCourteBlanche, BarreLargeBlanche, BarreCourteNoire As Integer
Dim BarreLargeNoire As Integer

ben voilà....

Sator2
0
Rejoignez-nous