:: Visual Foxpro, Foxpro for DOS
сканер штрих-кодов для EANGNIVC
Croneker

Сообщений: 3
Дата регистрации: 04.05.2009
Доброго времени суток. Есть такая задача: нужно с напечатанного документа сканером штрих-кодов считывать
некоторый номер и по нему открывать форму соответствующей накладной. На документах штрих-код печатается шрифтом EANGNIVC.
Пользователь должён установить фокус на textbox, и либо руками набрать номер накладной и нажать enter,
либо провести сканером по штрих-коду, после чего по введённому номеру открывается экранная форма.
Ручной ввод я сделал, вот обработчик метода KeyPress для этого текстбокса:

PROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl

IF nKeyCode=13 && нажат enter
IF !EMPTY(VAL(this.Value))
DO OpenDocAfterScan WITH VAL(this.Value)
this.Value = []
ENDIF
ENDIF
ENDPROC

Теперь нужно купить сканер и заставить эту кухню работать со сканером.
Посоветуйте, плиз, ручной сканер, который бы в моём случае корректно считывал штрих-код и посылал символ возврата каретки, чтобы автоматом отрабатывал мой KeyPress и запускалось открытие формы.
Я правильно понимаю, что большинство современных сканеров можно настроить на различные суфиксы/префиксы?
Я так понимаю, что целесообразно купить лазерный сканер, т.к. ССD-сканеры отживают своё?
И такой вопрос: не будет ли проблем с количеством знаков в считываемом номере? Я так понял, что стндарт EAN-13, который видимо мне и нужен,работает с числами, в которых 13 знаков. Я вывожу в ячейку excel число 123, ставлю ячейче шрифт EANGNIVC, у меня формируется штрих код.
Когда я считаю его сканером, получу ли я обратно свой число 123, или же что-нибудь вроде 0000000000123 или 1230000000000 ?
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
Serg_wrn

Сообщений: 6
Дата регистрации: 29.03.2008
Из моего опыта работы со сканерами штрих-кодов могу сказать, что сканер жать Enter не будет.
Просто эммулирует ввод цифр (сколько их есть в штрих-коде) и все. Так что Enter надо будет нажимать пользователю. Но введет он ровно 123.
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
Леха

Сообщений: 162
Откуда: Новочебоксарск
Дата регистрации: 04.02.2009
Точно, так и есть.
И в keypress можно сделать что-то типа:
if len(this.value) = сколько нужно цифр
do form form1.scx
endif
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Дык можно в штрих-код ввести какую-нибудь загогулину, которую запрограммировать в обработчике как Enter. ¤
Тогда будет четко ясно - ручной ввод или со сканера.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.




Исправлено 1 раз(а). Последнее : Влад Колосов, 04.05.09 18:43
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
southpole

Сообщений: 19
Дата регистрации: 17.01.2006
Сканеры с интерфейсом "Разрыв клавиатуры" эмулируют нажатие ENTER
на фирме для регистрации документов работаем со сканерами Proton 1100 и 7100 (покупались здесь www.geksagon.ru)
в качестве штрих кода используем тип - Code39
а про этот сканер написано что он читает все популярные линейные штрих коды (в том числе EAN/CAN/JAN-13)
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
oldy

Сообщений: 4
Дата регистрации: 16.05.2009
Скажите, а у вас что-нибудь получилось с EANGNIVC? дело в том, что я не могу прочитать штрих-код, напечатанный этим шрифтом, ни одним сканером, имеющимся у меня под руками. И поиск в Сети наводит меня на мысль, что никто этот штрих-код (а по спецификациям это должен быть EAN-8) так и не читает.
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
AlexShch

Сообщений: 23
Дата регистрации: 05.03.2008
2 oldy.
Если вы просто берете некий набор цифр, печатаете его этим шрифтом и пытаетесь прочесть сканером, то у вас ничего не получится. Надо сначала преобразовать исходный набор в некий промежуточный, который и распечатать. Где-то в решениях, по-моему, есть функция преобразования.
Если не найдете, могу попробовать поискать свою.



Исправлено 1 раз(а). Последнее : AlexShch, 18.05.09 10:58
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
Reese

Сообщений: 100
Откуда: Moscow
Дата регистрации: 05.08.2008
Цитата:
Я так понимаю, что целесообразно купить лазерный сканер, т.к. ССD-сканеры отживают своё?

Если предполагается сканировать руками (т.е. использовать ручной, а не стационарный сканер), то лучше взять CCD, и с кнопкой, а не автомат. Им удобней IMHO. Я обычно пользуюсь, в этих случаях, Cipher 1000/1021.
Цитата:
Я правильно понимаю, что большинство современных сканеров можно настроить на различные суфиксы/префиксы?
Правильно. И даже более того. Сканер, который в разрыв клавиатуры, можно настроить даже чтобы он курсором мышки подвигал. Поэтому делаем простую вещь. В сканере настраиваем посылать определенные нажатия клавиш до считывания и после считывания. Эти команды и ловим.

Второй вариант - это COM сканер. Там в принципе та же история с посылкой команд. Только в этом случае придется использовать какой нибудь ActiveX, обычно используют mscomm, и таймер. По таймеру опрашиваем объект на предмет наличия необходимой строчки (начало и конец строки мы же установили). Вот и все.



Исправлено 1 раз(а). Последнее : Reese, 18.05.09 12:46
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
oldy

Сообщений: 4
Дата регистрации: 16.05.2009
2 AlexShch
Подожжите... Вы про контрольную цифру? Я поступал совсем просто - брал реальный код EAN-8 (с пачки сигарет), в котором контрольная цифра сформирована корректно (я проверял , выводил все цифры кода вместе с контрольной шрифтом EANGNIVC. Сканер (Cipher-1000K) не то что не считывает, а даже не видит кода - не пищит совсем. Внимательное разглядывание полосочек показало, что они и внешне отличаются от того, что напечатано на пачке сигарет (с которой, конечно, код считывается успешно) - соотношение ширины полосок разное.
Поэтому я еще раз прошу уточнить - именно этим шрифтом напечатанный штрих-код удалось чем-либо прочитать?
Беда в том, что коды УЖЕ напечатаны, и их надо сосканировать. Чем - ума не приложу.
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
AlexShch

Сообщений: 23
Дата регистрации: 05.03.2008
2 oldy
Нет, я не про контрольную сумму. Она - само собой. Поясняю подробнее: Вот реальный код EAN-8 - 64013152 (тоже взял с сигарет). Его надо преобразовать по определенным правилам, получится - !6401-dbfc! (именно так, начиная и заканчивая восклицательными знаками, и в середине - минус). Эту последовательность символов вставляем в репорт шрифтом Eangnivc и распечатываем. Тогда он считается любым сканером, и "полосочки" совпадут с вашей пачкой сигарет. Те коды, которые УЖЕ напечатаны не по этому правилу, можете выбросить, читаться они не будут!



Исправлено 2 раз(а). Последнее : AlexShch, 18.05.09 15:11
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
oldy

Сообщений: 4
Дата регистрации: 16.05.2009
О! спасибо. И правда, прочлось. Меня смутило то, что штрих-коды на налоговых декларациях, ради которых шрифт и появился, насколько я понимаю, не читаются сканером )))
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
AlexShch

Сообщений: 23
Дата регистрации: 05.03.2008
2Oldy
1. Ну и отлично. Правила преобразования для EAN-8 вполне понятны из моего примера. А вот для EAN-13 они гораздо хитрее, понадобятся - расскажу.
2. Насколько я вижу(держу сейчас в руках), на налоговых декларациях тот же EAN-8. Он строится по тому же правилу, и вполне читается сканером (только что попробовал).
Ratings: 0 negative/1 positive
Re: сканер штрих-кодов для EANGNIVC
oldy

Сообщений: 4
Дата регистрации: 16.05.2009
2 AlexShch
Уточните, плз, как была получена эта налоговая декларация? В смысле, в какой программе? Или это покупной комплект? Я пробовал сканировать декларации, формируемые из 1С - у меня не получилось.
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
AlexShch

Сообщений: 23
Дата регистрации: 05.03.2008
2 Oldy
Программа "Налогоплательщик ЮЛ". Из 1С не пробовал, но сейчас поищу, попробую.

Добавлено:
Распечатал из 1С пару разных отчетов, один прочитался нормально, другой - нет. Внимательное изучение штрихов показало, что штрих-коде, который не прочитался, первый из двух центральных штрихов и первый из двух заключительных (они более длинные) сливаются с предыдущими. То есть программисты 1С что-то намудрили то-ли с шириной символов, то-ли с их расположением.

Добавлено 2:
Эти тормоза неверно его задают. Конкретный пример: для кода 51001070, печатная последовательность должна быть
!5100-baha! , а они пишут !5100!1070! . Вот он и не читается.



Исправлено 2 раз(а). Последнее : AlexShch, 20.05.09 12:18
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
Atlant

Сообщений: 204
Откуда: Новосибирск
Дата регистрации: 01.09.2005
Столкнулся с той же проблемой. Гугль и 1С выручили Наскоро передрал с функции вывода в 1С для этого шрифта

Lparameters scode
Local fcode
fcode=Val(Substr(scode,1,1))
*!* //13
strscode=getcomb(fcode)
*!* //12
strscode=strscode+'!'+getcomb(Val(Substr(scode,2,1)),'A')
*!* //11
If fcode<4
strscode=strscode+getcomb(Val(Substr(scode,3,1)),'A')
Else
strscode=strscode+getcomb(Val(Substr(scode,3,1)),'B')
Endif
*!* //10
If fcode=0 Or fcode=4 Or fcode=7 Or fcode=8
strscode=strscode+getcomb(Val(Substr(scode,4,1)),'A')
Else
strscode=strscode+getcomb(Val(Substr(scode,4,1)),'B')
Endif
*!* //09
If fcode=0 Or fcode=1 Or fcode=4 Or fcode=5 Or fcode=9
strscode=strscode+getcomb(Val(Substr(scode,5,1)),'A')
Else
strscode=strscode+getcomb(Val(Substr(scode,5,1)),'B')
Endif
*!* //08
If fcode=0 Or fcode=2 Or fcode=5 Or fcode=6 Or fcode=7
strscode=strscode+getcomb(Val(Substr(scode,6,1)),'A')
Else
strscode=strscode+getcomb(Val(Substr(scode,6,1)),'B')
Endif
*!* //07
If fcode=0 Or fcode=3 Or fcode=6 Or fcode=8 Or fcode=9
strscode=strscode+getcomb(Val(Substr(scode,7,1)),'A')
Else
strscode=strscode+getcomb(Val(Substr(scode,7,1)),'B')
Endif
*обработка последних символов
strscode=strscode+'-'+;
getcomb(Val(Substr(scode,8,1)),'C')+; &&06
getcomb(Val(Substr(scode,9,1)),'C')+; &&05
getcomb(Val(Substr(scode,10,1)),'C')+; &&04
getcomb(Val(Substr(scode,11,1)),'C')+; &&03
getcomb(Val(Substr(scode,12,1)),'C')+; &&02
getcomb(Val(Substr(scode,13,1)),'C')+'!'&&01
Return strscode
*!* КонецФункции
Function getcomb()
Lparameters IshCode, ctype
ctype=Iif(Empty(ctype),'',ctype)
Do Case
Case ctype="A"
Return Alltrim(Str(IshCode))
Case ctype='B'
Return(Chr(IshCode + 65))
Case ctype='C'
Return(Chr(IshCode + 97))
Otherwise
Return(Chr(IshCode + 35))
Endcase
Endfunc

Функция возвращает подготовленную строку для печати шрифтом EANGNIVC
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
Sijei
Автор

Сообщений: 1
Дата регистрации: 19.06.2018
Спасибо за вышеприведенное решение! Его можно заставить работать с этим сканером штрих-кода?
https://smartcode.ru/shtrihkodirovanie_i_identifikatsiya/skanery_shtrihkoda/youjie_zl2200-1-usb



Исправлено 2 раз(а). Последнее : Sijei, 06.07.18 15:17
Ratings: 0 negative/0 positive
Re: сканер штрих-кодов для EANGNIVC
Киля

Сообщений: 1
Дата регистрации: 09.08.2018
AlexShch
А вот для EAN-13 они гораздо хитрее, понадобятся - расскажу.

Дааа! Пожалуйста расскажите?!
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 20 (Гостей: 20)

© 2000-2024 Fox Club 
Яндекс.Метрика