powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сканер штрих-кодов и KeyPress (срочно)
11 сообщений из 11, страница 1 из 1
Сканер штрих-кодов и KeyPress (срочно)
    #33158339
Kim Alexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дано:
- Сканер штрих-кодов;
- Форма с несколькими TextBox-ами('Дата', 'Номер документа', 'Штрих-код') и Grid-ом;
- Информация о наборе символов штрих-кода, возвращаемая сканером эквивалентна нажатию соответствующих клавиш на клавиатуре и Enter (например '012301423414'+#13).

Проблема:
Необходимо организовать форму так, чтобы информация сканера вне зависимости от текущего фокуса возвращалась в единственный строго определенный TextBox или в некоторую переменную. Проблема в том, что на форме находится не один TextBox, в который могут вводиться цифры. Заказчику не интересно, на каком из них расположен текущий фокус, главное - чтобы после сканирования штрих-код размещался в нужном поле, и производился поиск соответствующей ему информации. Я пока не понимаю, как бы отследить информацию сканера и отличить ее от ввода с клавиатуры.

Поделитесь, пожалуйста своими соображениями. Зараннее спасибо.
...
Рейтинг: 0 / 0
Сканер штрих-кодов и KeyPress (срочно)
    #33158345
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что тут соображать-то? Пока не найдешь способа отличить ввод с клавиатуры/мышки от ввода со сканера все равно ничего путного не получится. Или держи фокус только в том поле, куда надо направить ввод от сканера. Если надешь способ отличить, то кидай ввод от сканера сразу в переменную, привязанную к нужному текстбоксу с откидыванием #13 и обновляй текстбокс.
...
Рейтинг: 0 / 0
Сканер штрих-кодов и KeyPress (срочно)
    #33158410
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kim Alexander Заказчику не интересно, на каком из них расположен текущий фокус, главное - чтобы после сканирования штрих-код размещался в нужном поле, и производился поиск соответствующей ему информации. Я пока не понимаю, как бы отследить информацию сканера и отличить ее от ввода с клавиатуры.
Никак не отличить ввод со сканер и ввод с клавиатуры, некоторые драйвера сканеров просто построены на основе этого принципа...

Писал я подобные программы для магазинов и складов... Везде использовался простой принцип - в свойство любого объекта по выходу включалась строка по переходу на поле ввода данных для сканера. Само поле ввода проверялось на наличие символов в этом поле - если они есть, то поиск по базе данных - нет, переход на другое поле... В другом поле - переход снова на сканируемое поле + обязательно управление с помощью горячих клавиш - то есть любое поле в форме можно выбрать нажатием горячих клавиш...

Нменого фантазии и все у Вас получится :)
...
Рейтинг: 0 / 0
Сканер штрих-кодов и KeyPress (срочно)
    #33158612
Фотография MaestroEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вас спосет сканер, подключаемый к сом - порту.
...
Рейтинг: 0 / 0
Сканер штрих-кодов и KeyPress (срочно)
    #33159206
Kim Alexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторВезде использовался простой принцип - в свойство любого объекта по выходу включалась строка по переходу на поле ввода данных для сканера

Не было ли это расценено как неудобство? Ведь для того, чтобы перейти на нужное поле надо будет выполнять вдвое больше операций.

Кроме того, если фокус находится в поле ввода, к примеру, даты, то все считается именно туда.

авторобязательно управление с помощью горячих клавиш - то есть любое поле в форме можно выбрать нажатием горячих клавиш...
Была такая мысль, но заказчик категорически не желает пользоваться клавиатурой при ввод штрих-кодов.
...
Рейтинг: 0 / 0
Сканер штрих-кодов и KeyPress (срочно)
    #33159313
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kim Alexander
Не было ли это расценено как неудобство? Ведь для того, чтобы перейти на нужное поле надо будет выполнять вдвое больше операций.

Кроме того, если фокус находится в поле ввода, к примеру, даты, то все считается именно туда.
Здесь возможен только компромис и постоянный обмен мнениями с заказчиком.

Если есть типовые операции - надо сделать так, чтобы ввелась, например, дата, затем что - то другое... но в конце типовых операций - поле ввода сканирования кода товара (после воода этой формы - маленькая форма количества если присутствет или другие необходимые данные, так чтобы выполнялась четкая цепь логических операций)...

Если что-то не так, то надо модифицировать бизнесс процессы, а не форму ввода документа, ибо это уже вторично...
...
Рейтинг: 0 / 0
Сканер штрих-кодов и KeyPress (срочно)
    #33159447
Pavel_t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё боится времени

В СКАНЕРЕ можно настроить префикс и постфикс
начало и завершение штрих кода
в документации на сканер должно быть описано
как это запрограммировать в самом сканере
например префикс можно взять '&' или другой не используемый символ
и на кей прес формы выходить в этот текстбох


.... и только время боится пирамид!
...
Рейтинг: 0 / 0
Сканер штрих-кодов и KeyPress (срочно)
    #33159463
Дмитрий Т.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для железа (и ПО соответственно) ввод со сканера (в разрыв клавиатуры) не отличается от набора на клавиатуре.
Единтвенно что можно отследить - интервал между нажатиями - человек не надолбит 13 цифр за доли секунды.
А дальше извращайся c Form.KeyPress() Seconds() и таймерами.
А лучше посмотри как в магазинах самообслуживания интерфейс сделан. Там одно окошко на весь ввод.
...
Рейтинг: 0 / 0
Сканер штрих-кодов и KeyPress (срочно)
    #33159563
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Т.А лучше посмотри как в магазинах самообслуживания интерфейс сделан. Там одно окошко на весь ввод.
Автор так и не сказал, для чего конкретно нужна ему это программа, может быть просто для курсового...
...
Рейтинг: 0 / 0
Сканер штрих-кодов и KeyPress (срочно)
    #33160054
Gri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gri
Гость
Для железа (и ПО соответственно) ввод со сканера (в разрыв клавиатуры) не отличается от набора на клавиатуре

Более того , нужно оставить вожможность ввода ручками,сканер
может не всегда работать .
Что кассу закроеш ?
...
Рейтинг: 0 / 0
Сканер штрих-кодов и KeyPress (срочно)
    #33160501
alfa_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эту задачу можно легко решить используя префикс и суфффикс штрих кода , а также учитывая эффект отсутствия временной задержки между кодами у сканера.
При этом метод KeyPress будет выглядеть примерно так :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Procedure KeyPress
Lparameters m.nKeyCode, nShiftAltCtrl
*---префикс скан кода равен '!'
If   m.nKeyCode=Asc('!')
 If This.BarCodeRead()
  Nodefault
 Else
  DoDefault(m.nKeyCode, nShiftAltCtrl)
 Endif
Endproc

А так будет выглядеть метод BarCodeRead

Код: plaintext
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.
Procedure BarCodeRead
Local m.nLastChar,m.nTimeout,m.cBarCod,m.lOk
*--
m.cBarCod=''
m.nTimeout=Seconds()
*---до тех пор пока символы идут без временной задержки
*---или не обнаружен суффикс штрих кода , формируем штрих код
Do While .T.
 m.nLastChar=Inkey( 0 . 1 )
 If m.nLastChar= 0 
  If Seconds()-m.nTimeout> 0 . 2 
   Exit
  Endif
 Else
  *---суффикс скан кода равен '!'
  If m.nLastChar=Asc('!')
   Exit
  Else
   m.cBarCod=m.cBarCod+Chr(m.nLastChar)
   m.nTimeout=Seconds()
  Endif
 Endif
Enddo
m.lOk=Len(m.cBarCod)> 1 
If m.lOk
 *--- OnBarCodeRead обработчик bar code в конкретной форме
 This.OnBarCodeRead(m.cBarCod)
Endif
Return m.lOk
Endproc
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сканер штрих-кодов и KeyPress (срочно)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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