Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Штрихкод с двумя контрольными цифрами (а по виду EAN13) / 14 сообщений из 14, страница 1 из 1
21.08.2018, 13:56
    #39691057
Ш+К
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
Доброго дня всем.
В моем чудесном решении не было предусмотрено одного интересного момента - наличия штрихкода с двумя контрольными цифрами.
До сих пор все было красиво и прекрасно - либо нормальный EAN13, либо с закодированным весом. У обоих контрольная сумма в последнем разряде.
Этот же весовой штрикод - тоже весовой, но контрольный разряд еще и в 5 или 6 цифре от начала, что интересно и он тоже вычисляется на основании веса.
И как теперь быть?

Ранее интерпретировал так: если штрихкод из 22-23 группы, то весовой, первая часть - код товара, вторая - вес.
Все остальные штрихкоды - полностью код товара.

А этот?
Выглядит так:
22123 X 0123456
И вместо Х может быть что угодно
Конкретно сейчас в базу добавил 10 строк
22123 0
....
22123 9

Но как-то некрасиво и как производить анализ, если 221240 вполне может быть обычным весовым товаром?

Спасибо.
...
Рейтинг: 0 / 0
21.08.2018, 15:30
    #39691152
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
А кто генерит эти ШК ?
Какой-то сторонний продукт у поставщика товаров с ШК ?

Нужно просто иметь настройки где начинается/кончается код товара и где вес.
А также следует учесть, что на весах еще есть возможность передавать вес не до 10кг (1 разряд на КГ), а до 100, т.е. 2 разряда на КГ.

зы: помница на оптовой базе вдруг увидели огромный спрос покупателей на сосиски. Таскали мешками. Оказалось, покупатели выяснили, что взвешивая 12кг на весах, весы выдадут ШК с 2 кг.
Т.к. потоки товаров и сумм на оптовой базе большие, кассиры часто этого не замечают.
Пришлось установить ШК на 2 разряда КГ.
Благо была возможность регулировать парсинг ШК на POS.
...
Рейтинг: 0 / 0
21.08.2018, 15:31
    #39691153
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
Ш+КВ моем чудесном решении не было предусмотрено одного интересного момента - наличия штрихкода с двумя контрольными цифрами.А надо предусматривать.
Шаблоны принимаемых штрихкодов в настройку выносить.
...
Рейтинг: 0 / 0
22.08.2018, 14:08
    #39691754
Ш+К
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
Вот в том и вопрос, как мне построить логику, если
23 6470X0 0100 1, товар 6470X0, 100 грамм
23 110110 1220 2, товар 110110, 1220 грамм
23 110120 1120 3, товар 110120, 1120 грамм
среди вышеуказанных товаров с префиксом 23 (т.е. весовой товар) имеется один с контрольной суммой (разряд помечен X)?
Получается на момент сканирования я уже должен знать, а не с двумя ли цифрами контрольными данный штрихкод :-)...

Можно наверное организовать поиск по маске и исключать этот разряд, но зачем это делать для всех 10000 строк при наличии одной такой единственной "хитрожопой" строки...
Можно было бы найти алгоритм вычисления этой контрольной цифры (если узнать тип штрихкода), тогда наверное можно выявить эту строку...

Спасибо.
...
Рейтинг: 0 / 0
22.08.2018, 14:16
    #39691763
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
Ш+КВот в том и вопрос, как мне построить логику, если
23 6470X0 0100 1, товар 6470X0, 100 грамм


А в БД у товара какой ШК?
...
Рейтинг: 0 / 0
22.08.2018, 14:49
    #39691796
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
Получить список кодов (список продукции/производителя), которые используют данный формат и дальше обрабатывать в зависимости от того, есть там второй разряд или нет.
...
Рейтинг: 0 / 0
22.08.2018, 17:53
    #39691972
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
Можно наверное организовать поиск по маске и исключать этот разряд, но зачем это делать для всех 10000 строк при наличии одной такой единственной "хитрожопой" строки...Этот Х - чья-то дурацкая самодеятельность. :)

Сколько у вас таких товаров ?

Самый простой выход уже сделан - вывести все комбинации этого Х.
...
Рейтинг: 0 / 0
22.08.2018, 20:06
    #39692013
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
x1ca4064А в БД у товара какой ШК?У него нет штрихкода. Или скорее всего нет.

Вообще, этот штрихкод наверняка генерируют весы. Обычно формат штрихкода в весах настраивается.
...
Рейтинг: 0 / 0
22.08.2018, 21:32
    #39692027
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
YuRockУ него нет штрихкода. Или скорее всего нет.[/quit]

Вообще, этот штрихкод наверняка генерируют весы. Обычно формат штрихкода в весах настраивается.

Да, я понимаю, сформулировал криво, интересовал внутренний код в БД. В весах, обычно, настроиваются кол-во цифр для кода товара и веса, либо стоимости. Непонятной дополнительной контрольной цифры никогда не встречал, да и сомневаюсь, что это контрольная цифра. Нужно больше данных от ТС.
...
Рейтинг: 0 / 0
23.08.2018, 12:12
    #39692317
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
x1ca4064Непонятной дополнительной контрольной цифры никогда не встречал
Та чё, бывает. Если выбран формат ean13 - по любому будет сама в конце. Могут, и еще как-нибудь извернуться - кто знает этих программистов весов.
...
Рейтинг: 0 / 0
23.08.2018, 14:02
    #39692411
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
Возможно проблема в утилите, кот. формирует коды для закачки в весы.
...
Рейтинг: 0 / 0
06.09.2018, 21:15
    #39699259
Ш+К
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
Возможно кому-то пригодится
Штрих код с двумя контрольными цифрами
281556 X1 00150 X2
Контрольную сумму X2 итак понятно как посчитать
На Делфи пока не портировал, но код вычисления X1 ниже

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
dim two, plus5, minus5, weight(4), znach, res, dif, res2, i
two = array(0,2,4,6,8,9,1,3,5,7) 'создаем массивы с исходными данными
plus5 = array(0,5,1,6,2,7,3,8,4,9)
minus5 = array(0,5,9,4,8,3,7,2,6,1)
for i = 1 to 5 'посимвольно записываем значение веса в массив, чтобы работать с каждым символом отдельно
weight(i-1) = Mid([pack.nominal;Dbc5,2;DecimalBarcodeFormatter],i,1)
next
znach = 0
'проверяем не пустой ли символ в массиве и потом в переменную znach складываем все значения из массивов
'в соответствии с алгоритмом
if weight(0) <> "" then znach = znach + plus5(cint(weight(0)))
if weight(1) <> "" then znach = znach + two(cint(weight(1)))
if weight(2) <> "" then znach = znach + minus5(cint(weight(2)))
if weight(3) <> "" then znach = znach + plus5(cint(weight(3)))
if weight(4) <> "" then znach = znach + two(cint(weight(4)))
' теперь определяем к какому десятку относится сумма
res = 0
dif = 0
if znach < 51 then res = 50
if znach < 41 then res = 40
if znach < 31 then res = 30
if znach < 21 then res = 20
if znach < 11 then res = 10
dif = res - znach ' разница между суммой и этим же десятком
' теперь ищем какому значению соответствует разница в массиве minus5
for i = 0 to 9
if dif = minus5(i) then
res2 = i
exit for
end if
next

Result = [pack.material.barcode] & cstr(res2) & [pack.nominal;Dbc5,2;DecimalBarcodeFormatter] 
...
Рейтинг: 0 / 0
07.09.2018, 03:51
    #39699288
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
В таком штрихкоде главне - как называется этот стандарт. А потом уже вычисление контролек и т.п.
...
Рейтинг: 0 / 0
07.09.2018, 11:10
    #39699442
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
fraksВ таком штрихкоде главне - как называется этот стандарт. А потом уже вычисление контролек и т.п.Та какой стандарт. Это кто-то придумал формат для себя, и всё. Я и посложнее придумывал - с 3-4 контрольными разрядами
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Штрихкод с двумя контрольными цифрами (а по виду EAN13) / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]