http://www.gs1cz.org/
http://www.gs1.org/
V rámci GS1 se pro automatizované zpracování dat používají standardizované formáty čárových kódů,
do kterých se pomocí tvz. aplikačních identifikátorů (AI) kódují různé obchodní a logistické informace.
Z hlediska použití v HELIOS Orange jsou nejčastější tyto údaje (aplikační identifikátory):
AI (01)
- tzv. GTIN (Global Trade Item Number)
- jde o identifikaci zboží, většinou je údaj naplněn čárovým kódem položky
- tento AI je číselný a má pevnou délku 14 znaků, v EU se obvykle plní hodnotou EAN13 (GTIN-13), které musí přecházet nula (tvz. levostranná nula + 13 číslic)
- šarže/dávka, obvykle se plní výrobním číslem položky
- tento AI je textový a má délku proměnnou (1-20 znaků)
- datum expirace
- identifikátor je číselný, má pevnou délku (6 znaků) a musí být ve tvaru RRMMDD
- počet logistických jednotek
- identifikátor je číselný, musí to být celé číslo a má proměnnou délku (1-8 znaků)
Vzorový čárový kód s aplikačními identifikátory (GS1-128)
V rámci čárového kódu mohou být použity i další identifikátory GS1, podle potřeby.
Pravidlem je, že mezi identifikátorem s proměnnou délkou a následujícím identifikátorem musí být umístěn oddělovací ASCII symbol (viz popis typů čárových kódů).
Aplikování GS1 pro tisk čárových kódů je možné v HELIOS Orange prostřednictvím komponenty ReportBuilder (RB) - nástroj pro tvorbu tiskových formulářů.
1D (jednorozměrný) čárový kód GS1-128
- v RB je třeba použít grafický objekt BarCode
- objekt je třeba přes Nastavení přepnout na typ Code 128 a vypnout Automatické kódování
- do objektu se pomocí Calcu vloží potřebné řídící ASCII symboly, aplikační identifikátory (AI) a samotná data z datových zdrojů
- pro GS1 se používá CODE 128, subset A, řídícím ASCII symbolem pro přepnutí subsetu je char(208), ten musí být vždy na začátku celého kódu
- pro uvození GS1 v CODE 128 se používá tzv. fukční znak (FNC1) který je vyjádřen ASCII symbolem char(207), ten je umístěn vždy jako druhý v kódu
- FNC1, tedy char(207) musí být také umístěn jako oddělovač za každým AI s proměnnou délkou, pokud za takovým následuje další AI
Příklad RB kódu (Calcu) pro GS1 128:
Definice formuláře > záložka Kalkulace > objekt BarCodeNNN > událost OnPrint:
- Kód: Vybrat vše
{deklarace proměnné BC14, ta lze použít pro doplnění čárového kódu položky nulami, do pevné délky 14 znaků}
var BC14:string;
{přiřazení datového pole čárový kód položky do proměnné BC14 a doplnění nulami zleva}
begin
BC14:=xPohybyZbozi_15['BarCode'];
while length(BC14)<14 do BC14:='0'+BC14;
{naplnění dat do čárového kódu}
BarCode1.Data:=
chr(208) {uvození subsetu A CODE 128}
+ chr(207) {uvození GS1, tedy znak FNC1}
+ '01' {AI - GTIN}
+ BC14 {vlastní data - hodnota BC14, tedy čárový kód položky doplněný na 14 znaků}
+ '10' {AI - BATCH/LOT}
+ StavVyrCisel['Nazev1'] {vlastní data - Výrobní číslo položky}
+ chr(207) {oddělení AI s proměnnou délkou, znak FNC1}
+ '17' {AI - datum expirace}
+ FormatDateTime('YYMMDD', xPohybyVyrobCisel_15_31['DatExpirace_X']) {vlastni data - datum expirace zformátovaný do tvaru RRMMDD }
+ '37' {AI - počet ks}
+ xPohybyZbozi_15['Mnozstvi']; {vlastní data - množství položky}
Plusy: 1D formáty zpracuje každá běžná čtečka BC.
Mínusy: Kód s AI vyžaduje dostatek místa pro tisk (šířka strany), je široký a může být problematické ho načíst ruční čtečkou.
2D (dvojrozměrný) čárový kód GS1 DataMatrix
- DataMatrix je plošný čárový kód, který funguje podobně jako QR kód, informace jsou rozloženy do 2D matice
- v RB je třeba použít grafický objekt 2DBarCode
- objekt je třeba pomocí panelu nástrojů Strom sestavy přepnout na typ bcDataMatrix
- ve Stromu sestavy se na objektu nastaví EncodeType = etdmASCII
- do objektu se pomocí Calcu vloží potřebné řídící ASCII znaky, aplikační identifikátory (AI) a samotná data z datových zdrojů
- pro uvození GS1 v DataMatrix se používá ASCII znak char(29), ten musí být použit na první pozici celého kódu
- char(29) se stejným způsobem použije jako oddělovač za každým AI s proměnnou délkou, pokud za takovým následuje další AI
Příklad RB kódu (Calcu) pro GS1 Data Matrix:
Definice formuláře > záložka Kalkulace > objekt TwoDBarCodeNNN > událost OnPrint:
- Kód: Vybrat vše
{deklarace proměnné BC14, ta lze použít pro doplnění čárového kódu položky nulami, do pevné délky 14 znaků}
var BC14:string;
{přiřazení datového pole čárový kód položky do proměnné BC14 a doplnění nulami zleva}
begin
BC14:=xPohybyZbozi_15['BarCode'];
while length(BC14)<14 do BC14:='0'+BC14;
{naplnění dat do čárového kódu}
TwoDBarCode1.Data:=
chr(29) {uvození GS1}
+ '01' {AI - GTIN}
+ BC14 {vlastní data - hodnota BC14, tedy čárový kód položky doplněný na 14 znaků}
+ '10' {AI - BATCH/LOT}
+ StavVyrCisel['Nazev1'] {vlastní data - Výrobní číslo položky}
+ chr(29) {oddělení AI s proměnnou délkou}
+ '17' {AI - datum expirace}
+ FormatDateTime('YYMMDD', xPohybyVyrobCisel_15_31['DatExpirace_X']) {vlastni data - datum expirace zformátovaný do tvaru RRMMDD }
+ '37' {AI - počet ks}
+ xPohybyZbozi_15['Mnozstvi']; {vlastní data - množství položky}
Plusy: 2D formát dokáže na menší tištěné ploše zakódovat více informací než 1D.
Mínusy: Pro čtení 2D kódů jsou potřeba obvykle nákladnější 2D čtečky.