06.12.2014 19:29
supermag/upload/temp/файл_проверки_шк.rar
это тот файлик, конечно там всё делает VBA, кажется запоролено, в тексте макроса алгоритма я не увидел,(вобщем то это нормально защищать свои разработки наверное) я в VBA защите не силён, слышал что легко пароли снимаются, сам не пробовал, если есть вопросы об организации такого шк в иннове, возможно смогу помочь, обращайтесь, но пока всё ещё я не получил ответа от сети Билла о правильности этого штрих кода, не хочу вводить всех в заблуждение, всё это пока неопробованная технология
06.12.2014 20:00
ещё, извиняюсь, кажется я туплю, в эксельке по ходу просто вормалами ячеек и "если" обошлись, нет там ВБА и макросов
06.12.2014 23:03
Цитата:
MaximBelousov ещё, извиняюсь, кажется я туплю, в эксельке по ходу просто вормалами ячеек и "если" обошлись, нет там ВБА и макросов
Все так и есть. тупо формулы забиты. Единственный макрос что есть - тупо чистит ячейки с исходными данными для расчёта.
07.12.2014 00:13
Макрос есть, но он просто очищает строку ENA-13

И есть скрытый лист "Prüfziffer 1", в котором расписано получение "первой контрольной цифры" (7-я цифра штрихкода)
09.12.2014 13:12
Спасибо, что был предоставлен алгоритм расчета контрольной цифры.

В общем после долгих мучений у меня получилось сделать вам готовое решение через Nice Label.
Выкладываю файл с этикеткой (на этикетке один штрихкод), если вам необходимо скопируйте куда угодно. В функция найдете vbскрипт Barcode.Также используются две переменные - запросы из Innova:

pack.material.barcode - этот берет данные из Продукты - Штрих код (Barcode), штрих код должен быть из 6 цифр!
pack.nominal;Dbc5,2;DecimalBarcodeFormatter - этот берет данные из таблицы Спецификации содержимого - Fixed Weight

Единственное, я не проверил все варианты с различными значениями, так что это за вами :)

Если кому надо, вот код скрипта для Nice Label:

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]
09.12.2014 13:15
Сама этикетка
Вложения
Тип файла: 7z Barcode with two control digit for nice label.7z (5.6 Кб, 189 просмотров)
09.12.2014 15:26
Обязательно протестирую, как время будет, данный шаблон, спосб с готовым алгоритмом в nice, если он корректный, конечно же более оптимальный
29.10.2019 18:39
Данный штрих-код умеет генерировать торговые весы Dibal M-525.
Часовой пояс GMT +3, время: 12:26.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.