Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.17;
Скачать: CL | DM;

Вниз

Сканер штрихкода не читает мои штрихкоды..   Найти похожие ветки 

 
Layner ©   (2006-08-21 22:08) [0]

Здравствуйте!
Генерирую свой код типа 1000000000095, (13 символов), генерирую по нему код в отчете, и... сканер не распознает код. Если беру 13 символов с любого товара, и также печатаю через отчет (FastReport 3.20), то все прекрасно распознается. Подскажите, как генерировать код, что бы понял сканер его? И еще, у меня код с переменным весом, т.е. в коде передаю первые 7 символов код товара, например код 12 и вес 4599 грам - получается как 1000012004599, но увы, что то сканер его не читает... Как быть в таком случае? Заранее благодарю.


 
tesseract ©   (2006-08-21 22:11) [1]

> [0] Layner ©   (21.08.06 22:08)


Перечитать инфу по коду. Ошибка в генерации/печати кода.


 
DiamondShark ©   (2006-08-21 22:15) [2]

Какая система кодировки? Подозреваю, что EAN-13.
Так там последняя цифра -- контрольная, рассчитывается по спец. алгоритму (наизусть не помню, но в сети навалом описаний).
Так что под эзерскую инфу остаётся только 12 цифр.


 
Layner ©   (2006-08-21 22:19) [3]

Так в генерации никак не может быть ошибки, это все делает FastReport. Т.е. печатаю последовательность чисел как на стандартном коде - 4600732134392 и печатаю через FastReport, то все распознается сканером без проблем. Делее, печатаю свой код - 1000000000095, на штрихе изображено как надо вроде, а вот в сканер не заходит все. Я так понимаю, если я генерирую свой код, то свой код должен состоять из 12 символов, а 13й - контрольный, правило вычитал в интеренете:

начиная с начала (слева) сумма нечетных цифр (СН) (первогй третьей и т.д)
плюс сумма четных (СЧ) умноженое на три......
контрольная сумма - добавка, чтоб делилось на 10-ть......
9-((СН+СЧ*3-1)%10);

Может есть более точное объяснение у кого нибудь, что то до конца идею  разобрать не могу...


 
Layner ©   (2006-08-21 22:20) [4]

DiamondShark ©   (21.08.06 22:15)
да, EAN-13, понял, сейчас поищу ещё правило расчета посл. цифры, благодарю!


 
DiamondShark ©   (2006-08-21 22:28) [5]


> что то до конца идею  разобрать не могу...

4 6 0 0 7 3 2 1 3 4 3 9 2

СН = 4 + 0 + 7 + 2 + 3 + 3 = 19
СЧ = 6 + 0 + 3 + 1 + 4 + 9 = 23
9 - (19 + 23 * 3 - 1) mod 10 = 2


 
isasa ©   (2006-08-21 22:29) [6]

Layner ©   (21.08.06 22:20) [4]
Про фаст-репорт, не знаю, но обычно компоненты сами формируют контрольную цифру. Попробуй задать двенадцать и прочитать штрих.


 
Loginov Dmitry ©   (2006-08-21 23:38) [7]

Попробуйте вместо EAN-13 использовать Code128 или како-нибудь другой тип, поддерживающий переменное количество цифр.
EAN-13 наверно все-таки не предназначен для хранения в нем всякой инфы по товару.


> генерирую по нему код в отчете, и... сканер не распознает
> код


Сканер сможет распознать код только в случае правильного подсчета контрольного разряда.


> Layner ©   (21.08.06 22:19) [3]



> начиная с начала (слева) сумма нечетных цифр (СН) (первогй
> третьей и т.д)
> плюс сумма четных (СЧ) умноженое на три......
> контрольная сумма - добавка, чтоб делилось на 10-ть......
> 9-((СН+СЧ*3-1)%10);


Неправильное правило. Подсчет ведется не слева, а справа. Сначала суммируются четные числа, начиная со второго, затем нечетные, начиная с 3-го.


 
DiamondShark ©   (2006-08-21 23:50) [8]


> EAN-13 наверно все-таки не предназначен для хранения в нем
> всякой инфы по товару

Если "всякая инфа" -- это только вес, то предназначен. Весы с этикеточными принтерами как раз EAN-13 и используют.


 
DiamondShark ©   (2006-08-21 23:52) [9]


> Подсчет ведется не слева, а справа. Сначала суммируются
> четные числа, начиная со второго, затем нечетные, начиная
> с 3-го.

Что совой об пень, что пнём по сове ;)


 
Loginov Dmitry ©   (2006-08-22 07:49) [10]

> Что совой об пень, что пнём по сове ;)


Нет, разница все-же есть. Один и тотже алгоритм расчета КС используется для разных типов штрих-кодов с разной длиной кода, так что ведение подсчета справо налево универсальнее.


 
tesseract ©   (2006-08-22 09:22) [11]

работающий код, неграмотный конечно, но без проблем читается сканером.


procedure TBARCODE.CRCEAN13;
var CRC1,CRC2:integer;
begin
// обнуляем
 fCRC:="";
//складываем числа на чётных местах
 CRC1:=StrToInt(fData[2]);
 CRC1:=CRC1+StrToInt(fData[4]);
 CRC1:=CRC1+StrToInt(fData[6]);
 CRC1:=CRC1+StrToInt(fData[8]);
 CRC1:=CRC1+StrToInt(fData[10]);
 CRC1:=CRC1+StrToInt(fData[12]);
// полученное умножаем на 3
CRC1:=CRC1*3;
// складываем числа на нечётных местах
 CRC2:=StrToInt(fData[1]);
 CRC2:=CRC2+StrToInt(fData[3]);
 CRC2:=CRC2+StrToInt(fData[5]);
 CRC2:=CRC2+StrToInt(fData[7]);
 CRC2:=CRC2+StrToInt(fData[9]);
 CRC2:=CRC2+StrToInt(fData[11]);
// Складываем цифры Отбрасываем десятки
  fCRC:=inttostr(CRC1+CRC2);
  fCRC:=fCRC[length(fCRC)];
// Вычитаем из 10
if fCRC<>"0" then fCRC:=inttostr(10-strtoint(fCRC));

fData:=fData+fCRC;
end;


 
Рамиль_   (2006-08-22 10:11) [12]

Возьми Code39 - * по краям кода и любое количество знаков.
*1000012004599*
можно и буквы использовать, если сканер понимает.


 
Layner ©   (2006-08-22 11:31) [13]

tesseract ©   (22.08.06 09:22)
Спаисбо за код, как раз что то подобное я и искал.
А на счет кодов отличных от EAN-13, можно конечно, но у нас во всех супермаркетах в городе пользуются именно EAN-13, и весовые кол-ва туда загоняют без проблем. Хотел тоже приспособить под свою задачку по выписке товара.


 
tesseract ©   (2006-08-23 14:45) [14]


> Хотел тоже приспособить под свою задачку по выписке товара.


5 лет страдаю


 
StriderMan ©   (2006-08-23 14:53) [15]

а готовые компоненты не пробовали юзать? есть и бесплатные


 
tesseract ©   (2006-08-23 15:02) [16]


> StriderMan ©   (23.08.06 14:53) [15]


В 2002 годы с нетом были напряги. С Delphi тоже - с тех пор мой личный компонент для принтеров Godex и др  работает, лень переписывать :-)



Страницы: 1 вся ветка

Текущий архив: 2006.09.17;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.047 c
2-1156832936
evgenij_
2006-08-29 10:28
2006.09.17
С какой табл.работает ADOQuery


2-1156355783
serko
2006-08-23 21:56
2006.09.17
ADO


2-1156775394
AlexanderMS
2006-08-28 18:29
2006.09.17
Флаги.


2-1156844462
Ник2006:)
2006-08-29 13:41
2006.09.17
автозугрузка через реестр.


2-1156671162
Ann123
2006-08-27 13:32
2006.09.17
Ошибки