Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Работа с сканером штрих кода? Добавлено: 10.08.06 11:29  

Автор вопроса:  Sergey
Такой вопрос на форме есть поля для поиска по базе данных и есть поле для работы со сканером штрихкода тоесть я становлюсь на это поле сканирую штрихкод (там расшифровываю его и производится поиск в базе данных) так вот как можно перехватить на форме данные со сканера ведь не заставлять же пользователя перед сканированием обязательно становится на поле для работы со сканером штрих кода.

Ответить

  Ответы Всего ответов: 21  

Номер ответа: 1
Автор ответа:
 Bombardier



ICQ: 42305746 

Вопросов: 2
Ответов: 67
 Web-сайт: alexander.tsioka.ru
 Профиль | | #1
Добавлено: 10.08.06 11:58
фишка в том, что сканер не определяется как какое-то специальное устройство, все модели с точки зрения компьютера - просто клавиатуры, при сканировании просто передается текст штрих-кода как нажатия клавиш и возврат каретки после...

Ответить

Номер ответа: 2
Автор ответа:
 Sergey



Вопросов: 5
Ответов: 10
 Профиль | | #2 Добавлено: 10.08.06 12:11
Ну так в этом вся проблема. Я вот думаю а если через Form_KeyDown Form_KeyUp енто дело отлавливать там всегда 13 цифр и как ты говориш возврат каретки только вот мозги до кучи собрать не могу что-бы это красиво оформить.

Ответить

Номер ответа: 3
Автор ответа:
 avdey



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #3 Добавлено: 10.08.06 12:12
2Bombardier
Ты сам-то понял что сказал...

2Sergey
Я так понял, что тебе надо когда юзер начинает сканировать прога ставила фокус на нужное поле...
Посмотри в папке с дровами от ентого сканера, там где-то должен лежать *.OCX (многие производители периферических устройств поставляют OCX для своих устройств), подрубаешь его к проекту и... там че нето уже можно наваять... наверно)))))))))

Ответить

Номер ответа: 4
Автор ответа:
 Sergey



Вопросов: 5
Ответов: 10
 Профиль | | #4 Добавлено: 10.08.06 12:40
Правильно допустим на форме есть Text1 и Text2 фокус стоит на Text2 но при сканировынии данные должны попасть в Text1.

Ответить

Номер ответа: 5
Автор ответа:
 Bombardier



ICQ: 42305746 

Вопросов: 2
Ответов: 67
 Web-сайт: alexander.tsioka.ru
 Профиль | | #5
Добавлено: 10.08.06 13:27
2avdey
я то как раз понял, так как софта который со сканерами ШТРИХ-КОДА работает много софта написал, нет там никаких драйверов, они просто в клавиатурный порт подключаются (как правило спец кабелем, в разрыв с клавиатурой) самые навороченные модели даже управляются просто сканированием спец кодов из мануала. Есть еще вариант сканеров с USB портами, но они определяются как HID устройство - по сути та-же клавиатура

Ответить

Номер ответа: 6
Автор ответа:
 _ICE_



ICQ: 354-671-214 

Вопросов: 18
Ответов: 103
 Профиль | | #6 Добавлено: 10.08.06 14:02
Да всё очень просто, есть два вида сканеров, одни подключаются к какому-нить порту, другие - напрямую в разрыв клавиатуры. У нас распространены именно вторые и работать с ними как со сканерами невозможно. Поэтому построй свою форму так, чтобы она автоматически определяла в какое поле должен быть ввод, используя события GotFocus и методы SetFocus для всех элементов управления формы. Вариант насчет счета 13 цифр - некрасиво.
Во-первых некрасиво с точки зрения программирования,
во-вторых до того, как произойдет ввод 13-ти цифр введется 1, 2, 3 ... цифры. Если они будут введены не в поле ввода штрих-кода, то как определить будут ли вводится еще цифры и ждать ли их, а может нужно уже начать обрабатывать введенные цифры, если введен не штрих-код?
в-третьих вводить можно не только штрих-коды, но и дисконтные карты со штрих-кодами, а они могут иметь не 13 цифр, мне попадалиь с 19-ю цифрами.
В общем фигня, по-этому советую построить форму ввода кода товара так, чтобы поле ввода кода было единственным видимым. Ввели штрих-код - показываем поле ввода оплаченной суммы или еще чего-то, и так далее.
И вообще в конце-концов есть свойство формы KeyPreview, если установить его в True, то любые символы, вводимые в пределах формы сначала вызывают событие KeyDown самой формы, а потом - элемента управления, куда был произведен ввод. Так можно централизованно отлавливать всю инфу, вводимую с клавиатуры.

Ответить

Номер ответа: 7
Автор ответа:
 _ICE_



ICQ: 354-671-214 

Вопросов: 18
Ответов: 103
 Профиль | | #7 Добавлено: 10.08.06 14:10
Насчет видимых полей - создай какую-нить переменную, которая будет хранить текущее состояние формы. В смысле: 1 - Ожидание ввода кода, 2 - ввод суммы, 3 - оформление проводки и др., и когда введен штрих-код переводи состояние формы в вид ввода суммы, потом - в вид оформления проводки по базе, после чего возвращаем в состояние 1. Таким образом ты всегда сможешь определить что именно у тебя сейчас вводится. Я делаю так: если форма находится в состоянии 1, то любое нажатие на клаву перехватывается формой и если поле ввода штрих-кода не в фокусе, то

TextBox1.SetFocus
TextBox1.Text = Символ, введенный с клавиатуры.

Так первый же символ в этом состоянии переводит фокус ввода в поле ввода штрих-кода. И так далее, вводим весь товар, проводимый за один раз. Заканчивая заказ оператор должен нажать эскейп, и форма переводится в состояние 2, показываются дополнительные поля и т.д.

Ответить

Номер ответа: 8
Автор ответа:
 _ICE_



ICQ: 354-671-214 

Вопросов: 18
Ответов: 103
 Профиль | | #8 Добавлено: 10.08.06 14:14
И еще фишка в том, что определить в фокусе поле ввода или нет нельзя (во-всяком случае я не умею), поэтому нужна булевская переменная TextBox1OnFocus, по умолчанию False, а при событиях TextBox1_GotFocus и TextBox1_LostFocus соответствующим образом меняющая свое значение. Т.о. если TextBox1OnFocus = True, то поле ввода в фокусе, и наоборот.

Ответить

Номер ответа: 9
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #9
Добавлено: 10.08.06 15:05
они просто в клавиатурный порт подключаются

 Я сам подключал ручной сканер к базе 1С. Точно это было через COM-порт. Через клавиатурный не видел.

Ответить

Номер ответа: 10
Автор ответа:
 Bombardier



ICQ: 42305746 

Вопросов: 2
Ответов: 67
 Web-сайт: alexander.tsioka.ru
 Профиль | | #10
Добавлено: 10.08.06 15:11
согласен, есть модели и на com и на всякую экзотику типа специфичных IBM-овских интерфейсов для кассовых терминалов, просто большинство сейчас продаваемых сканеров именно с клавиатурным интерфейсом так сказать в целях заботы об удобстве пользователей

Ответить

Номер ответа: 11
Автор ответа:
 _ICE_



ICQ: 354-671-214 

Вопросов: 18
Ответов: 103
 Профиль | | #11 Добавлено: 10.08.06 15:15
Да просто они и на самом деле удобнее. Нам допустим не навязывали, а предложили: вот есть такие и такие, но через клаву удобнее - без лишних проводов, порты не заняты и работают без всяких дров, поэтому мы и выбрали через клаву да и большинство сейчас выбирает. А насчет фокусов ввода - это задача очень даже решаемая.

Ответить

Номер ответа: 12
Автор ответа:
 Bombardier



ICQ: 42305746 

Вопросов: 2
Ответов: 67
 Web-сайт: alexander.tsioka.ru
 Профиль | | #12
Добавлено: 10.08.06 16:07
можно еще проверить введенные данные на корректность, потому как каждый штрихкод содержит контрольную цифру, алгоритмы подсчета в открытом доступе. Если совпало, значит данные именно со сканера и это код, если нет то вероятнее всего от фонаря настучали по клаве )))

Ответить

Номер ответа: 13
Автор ответа:
 _ICE_



ICQ: 354-671-214 

Вопросов: 18
Ответов: 103
 Профиль | | #13 Добавлено: 10.08.06 16:17
Да вот это как раз и не обязательно, ведь сразу после ввода любая подобная система должна выполнить поиск по своей базе данных регистрацию этого кода, и если нет кода, то незачем и проверять - проводка-то все равно не пройдет ;)

Ответить

Номер ответа: 14
Автор ответа:
 SyavX



Вопросов: 25
Ответов: 149
 Профиль | | #14 Добавлено: 12.08.06 11:09
CyRax, Bombardier, могли бы вы поделиться частью исходников в которых описана работа со сканером штрих-кода... Судя по всему код у вас проверенный, рабочий, может пригодится...
Буду рад, если на мыло вышлите :)
Thx

Ответить

Номер ответа: 15
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #15
Добавлено: 12.08.06 13:00
на работе разрабатывал ПО для работы с QR кодами. Вероятно в текстовое поле вбивает код не сам драйвер а приложение что идет в комплекте с драйверами. TI4000 кажись у мня сканер на работе валяется, так там он подключается к USB порту, но в драйвере весь вывод перенаправляется на виртуальный COM порт, с коего и читаются данные. Если их считывать вручяную, все ок... но какие-то чижики упростили мне работу, написали длл-ку, что отсылает данные в виде оконного сообщения.

ЗЫ
могу че-нить отослать, но оно на дельфи :)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам