Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.056 c
15-1156633166
demikasy
2006-08-27 02:59
2006.09.17
океан чувств


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


2-1156926115
Chuck Loon
2006-08-30 12:21
2006.09.17
Вхождение точки в полигон


15-1156176174
X9
2006-08-21 20:02
2006.09.17
Рендеринг в файл с прозрачностью (3dsMax)


15-1156610428
imbalacedees
2006-08-26 20:40
2006.09.17
BDE установщик





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский