Paramétrage des douchettes Touch65/90

1. Entrer dans le mode Configuration

Entrée configuration

La douchette émet 4 bips.

2. Choisir la famille Entrelacé 2/5

Entrelacé 2/5

La douchette émet 1 bip.

3. Inhiber le contrôle numérique

Pas de contrôle

La douchette émet 1 bip.

4. Scanner 0

0 hexa

La douchette émet 1 bip.

5. Scanner 1

1 hexa

La douchette émet 1 bip.

Cette séquence 01 signifie : la longueur minimale du code à barres est de 1 caractère.

6. Scanner 1

1 hexa

La douchette émet 1 bip.

7. Scanner 0

0 hexa

La douchette émet 1 bip.

Cette séquence 10 signifie : la longueur maximale du code à barres est de 10 caractères.

8. Enregistrer la configuration et sortir

Enregistrer configuration

La douchette émet 5 bips.

Structure des codes à barres (sauf ISITV)

Nos codes sont constitués :

  1. d'un préfixe de 3 chiffres : 026, 150, etc.
  2. d'une racine de 6 chiffres
  3. d'un chiffre de contrôle

Pour calculer le chiffre de contrôle :

  1. Ne pas tenir compte du préfixe
  2. Additionner le premier, le troisième et le cinquième chiffre de la racine (les impaires)
  3. Additionner le deuxième, le quatrième et le sixième chiffre de la racine (les paires), puis multiplier le résultat par 3, puis additionner au résultat précédent
  4. Prendre le modulo 10 du résultat
  5. Soustraire ce modulo de 10 ; si le résultat est 10, le chiffre de contrôle est 0

Illustration :
Soit le code 1500257909 :

  1. Ne pas tenir compte du préfixe 150 ; reste la racine 025790
  2. Impaires : 0 + 5 + 9 = 14
  3. Paires : 2 + 7 + 0 = 9 ; 9 x 3 = 27 ; 14 + 27 = 41
  4. 41 mod 10 = 1 (41 / 10 = 4, reste 1, qui est le modulo)
  5. 10 - 1 = 9

Dans Excel, si on met chaque chiffre du code dans une colonne à partir de la colonne A, on peut appliquer la formule :
=10-MOD((SOMME(E1;G1;I1)*3)+(SOMME(D1;F1;H1));10)

En perl, on peut faire (lourdement) comme ceci :

my $cb = "1500304665";
my $car_contr =
10 -
	(
		(
			substr($cb, 3, 1) + substr($cb, 5, 1) + substr($cb, 7, 1)
			+
			(substr($cb, 4, 1) + substr($cb, 6, 1) + substr($cb, 8, 1)) * 3
		) % 10
	) ;

En VBA on peut faire ceci :

Sub Verifie_Code_Barre(Code_Barre)
    Const PREFIXE = "150"
    Const LONGUEUR = 10
'On vérifie tout de suite la longueur
    If Len(Code_Barre) = LONGUEUR Then
'On vérifie le préfixe
        If Left(Code_Barre, 3) = PREFIXE Then
'On vérifie le caractère de contrôle
            Dim Racine
            Racine = Mid(Code_Barre, 4, 6)
            Dim Somme_Paires, Somme_Impaires
            Somme_Paires = Val(Mid(Racine, 2, 1)) + Val(Mid(Racine, 4, 1)) + Val(Mid(Racine, 6, 1))
            Somme_Impaires = Val(Mid(Racine, 1, 1)) + Val(Mid(Racine, 3, 1)) + Val(Mid(Racine, 5, 1))
            Somme_Paires = Somme_Paires * 3
            Dim Modulo
            Modulo = (Somme_Impaires + Somme_Paires) Mod 10
            Modulo = 10 - Modulo
            If Modulo = 10 Then
                Modulo = 0
            End If
            If Val(Right(Code_Barre, 1)) = Modulo Then
                MsgBox "Code-barre valide"
            Else
                MsgBox "Code-barre invalide"
            End If
        Else
'Si le préfixe n'est pas juste
            MsgBox "Le code-barre ne commence pas par " & PREFIXE
        End If
    Else
'Si la longueur est mauvaise
        MsgBox "Le code-barre doit avoir " & LONGUEUR & " caractères."
    End If
End Sub