Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Info

L'objet code barre ne gère que les codes barres à une dimension.

...













ASCII

Code 39



A

A

a

+A

0

0


ESC (Escape)




%A

SH (Start of Heading)


$A

B

B

b

+B

1

1


FS (File Separator)




%B

SX (Start of Text)


$B

C

C

c

+C

2

2


GS (Group Separator)




%C

EX (End of Text)


$C

D

D

d

+D

3

3


RS (Record Separator)




%D

ET (End of Transmission)


$D

E

E

e

+E

4

4


US (Unit Separator)




%E

EQ (Enquiry)


$E

F

F

f

+F

5

5


;




%F

AK (Acknowledge)


$F

G

G

g

+G

6

6


<




%G

BL (Bell-Audible of Attention Signal)


$G

H

H

h

+H

7

7


=




%H

BS (Backspace)


$H

I

I

i

+I

8

8


>




%I

HT (Horizontal Tabulation)


$I

J

J

j

+J

9

9


?




%J

LF (Line Feed)


$J

K

K

k

+K

!

/A


[




%K

VT (Vertical Tabulation)


$K

L

L

l

+L

"

/B


|



%L

FF (Form Feed)


$L

M

M

m

+M

#

/C


]




%M

CR (Carriage Return)


$M

N

N

n

+N

$

/D


^




%N

SO (Shift Out)


$N

O

O

o

+O

%

/E


_




%O

SI (Shift In)


$O

P

P

p

+P

&

/F


{




%P

DL (Data Link Escape)


$P

Q

Q

q

+Q

'

/G





%Q

D1 (Device Control 1-XON)


$Q

R

R

r

+R

(

/H


}




%R

D2 (Device Control 2)


$R

S

S

s

+S

)

/I


~




%S

D3 (Device Control 3-XOFF)


$S

T

T

t

+T

*

/J


DEL




%T

D4 (Device Control 4)


$T

U

U

u

+U

+

/K


NU (Null)




%U

NK (Negative Acknowledge)


$U

V

V

v

+V

,

/L


@




%V

SY (Synchronous Idle)


$V

W

W

w

+W

-

/M


`




%W

EB (End of Transmission Block)


$W

X

X

x

+X

.

/N


SP (= or ~ in our fonts)




SP 

CN (Cancel)


$X

Y

Y

y

+Y

/

/O







EM (End of Medium)


$Y

Z

Z

z

+Z

:

/Z







SB (Substitute)


$Z

...


Il utilise le codage de type 128C, et code une série de valeurs numériques. Voir le site
http://www.gs1.fr/gs1_fr/standards_gs1_

Ancre
_Hlt229364978
_Hlt229364978
Ancre
_Hlt229364979
_Hlt229364979
1/codes_a_barres_1/les_codes_a_barres_gs1/le_code_a_barres_gs1_128

Le 128C est un codage de type 128 qui code un chiffre de 2 caractères entre 00 et 99 sur un caractère de code 128 .
Le champ est donc toujours de longueur paire, si ce n'est pas le cas alors il faut faire comme s'il y avait un '0' devant, attention il n'y  a pas de BLANC non plus, Il n'y a que des chiffres de '00' à '99' .
Exemple :
123 > 01>premier code128c   23->deuxième code128c et au décodage le lecteur renverra   0123
Il faut donc envoyer au code 128c des chiffres entre '00' et '99', et décomposer le traitement  pour rendre les valeurs multiples de 2 caractères.
Il faut aussi utiliser le mode 'à l'exécution' avec le mode 20 ou 21, ce mode indique que le traitement de la longueur (qui doit être paire) doit être fait élément par élément et non pas  globalement à cause des caractères FNC1 qui peuvent se trouver entre deux valeurs et qui peuvent rendre la longueur totale du code barre impaire.
Exemple : on veut coder cette série de valeurs
1             ean        14    ;'01'  est du type n14
1             dte         6;une date de fabrication
1             fab        6;un numéro de fabrication
1             qte         8;une qte
1             dte2     6;autre date
 ;on commence par récupérer et par formater les champs
Dte = FormatD("AAM0J0",IMP_ETIQ.DLUO)
Dte =Modify(' ','0',dte)          ;on a 6 chiffres 000000
Fab= '0' & CLI.NoFab           ;si fabrique fait 5 de long on le met dans une zone de 6
fab =Modify(' ','0',fab)           ;on a 6 chiffres 000000
qte = Format("<00000000>",IMP_ETIQ.QTE)      ;sur 8 par exemple  avec des 0
dte2 = FormatD("AAM0J0",IMP_Etiq.DatFab)
dte2 =Modify(' ','0',dte2)                                        ;on a 6 chiffres 000000
ean = '0' & ART.EAN                ;1+13  -> 14 chiffres
ean = modify(' ','0',ean)
; dans le masque imprimante, il faut mettre l'objet code barre dans le mode « à l'exécution »
;maintenant on peut construire le code barre
IMP_ETIQ.EAN128 = "211   " &  \    ; type de code barre 21, 1 on ne veut pas de calcul de clé
;nota, la zone fait 6 caractères d'entête
 '10' & ean & \                            ;code ean
'15' & dte &  \                           ;date dluco
'91' & fab  & qte & FNC1 & \  ;numéro de fabrication et qte FNC1 permet d'indiquer une
;zone de lg variable
'10' & qt2                                 ;etc
remarquez que les code d'identifications sont '01', 02', … , et pas '1', '2' ,… , car ils doivent aussi êtres multiples de 2 caractères et que les codes '410' '411' … sont multiples de n3 a n13   car  '410' + n3, donne 6 caractères


Rappel : en mode "A l'exécution" les 6 premiers caractères sont :
Type de code barre 2,0 ;de 1 a 21
Calcul de la clé 1,0 ;1=aucun calcul  2=calcul 3=calcul et affichage
Réservé pour le   futur    3      
                                                                                                                                                              
Les types de code barre 20 et 21 sont les mêmes que 12 (CODE12C) et 15 (EAN128C) a part qu'il n'y a pas de contrôle que la longueur soit multiple de 2, ceci a cause des codes FNC1 qui peuvent se trouver dans le code barre et qui peuvent rendent impair la longueur du code barre.

Exemples de programmations

Plusieurs exemples de programmation de code barre sont fournis dans les Divalto/exemple, notamment ici dans le dossier codebarre.

Sous-projet

codebarre

illustre l’impression des codes barres les plus classiques

Image Added

Image Added

code barre colissimo

illustre l’impression des codes colissimo

Image Added

code barre swiss

illustre le QR Code des factures suisses

Image Added

code barre ybarcode

illustre l’utilisation de la DLL ybarcode.dll

Cet exemple génère plus de 100 exemple de codes barre, dont le paramétrage est décrit dans le fichier demoybarcode.txt

Quelques extraits :

Image AddedImage AddedImage AddedImage AddedImage AddedImage Added