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

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

В общем после долгих мучений у меня получилось сделать вам готовое решение через 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]
 
"Спасибо" Nekit от:
09.12.2014 13:15  
Nekit
Сама этикетка
Вложения
Тип файла: 7z Barcode with two control digit for nice label.7z (5.6 Кб, 122 просмотров)
 
09.12.2014 15:26  
MaximBelousov
Обязательно протестирую, как время будет, данный шаблон, спосб с готовым алгоритмом в nice, если он корректный, конечно же более оптимальный
 
 


Опции темы



Часовой пояс GMT +3, время: 05:17.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.