|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
Приветствую. Есть база с заказами и сканер штрих-кодов, имеется поле "№ заказа" и поле со списком "Текущее состояние". Нужно чтобы при сканировании штрих-кода нашлась запись по № заказа и текущее состояние изменилось на, к примеру, "Выполнено". Подскажите, как такое реализовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2016, 16:14 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
Ну код написать... который получит от сканера значение и в соответствии с ним внесёт необходимые изменения. В этом смысле изменение по данным от сканера никак не отличается от изменения по данным, введённым оператором на форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2016, 16:31 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
В чём проблема? Настраиваете сканер на эмуляцию нажатия Ентер после считывания (есть у всех сканеров, иногда по умолчанию стоит). На поле, куда будет считываться инфа сканером - цепляете последовательность нужных вам действий на событие "после обновления". ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2016, 20:22 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
TarasiosВ чём проблема? Настраиваете сканер на эмуляцию нажатия Ентер после считывания (есть у всех сканеров, иногда по умолчанию стоит). На поле, куда будет считываться инфа сканером - цепляете последовательность нужных вам действий на событие "после обновления". А можно поподробнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2016, 22:03 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
Подробнее на счёт чего именно? Настройки сканера или обработки значения, полученного сканером? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2016, 22:45 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
drobashА можно поподробнее? на самом деле всё гораздо сложнее, чем все тут пишут (думаю от отсутствия практики): - сканер считывает только штрих-код (если это сканер штрих-кода) - штрих-код сначала нужно распечатать, потом уже сканировать (речь идет не о поиске товара а о поиске номера заказа) - перед этим нужно определиться с типом используемого штрих-кода (ean13, code39, ...) - нужно придумать как связать № заказа с штрих-кодом (сам номер заказа засунуть в штрих-код или добавить рядом поле для хранения значения штрихкода) помня о том, что одни штрих-коды могут хранить только цифры, другие - цифры и только латинские буквы, 2D и круче требуют дорогих сканеров... Итого: получается алгоритм- 1. При создании заказа создается только ему соответствующий УНИКАЛЬНЫЙ штрих-код, несмотря на то, что сам № заказа может повторяться (например в следующем году) . Я бы сделал отдельный уникальный счетчик для всех № заказа и именно его засовывал в именно EAN-13 2. Сам бланк готового заказа должен быть обязательно распечатан (С ШТРИХ-КОДОМ) и отдан в производство - иначе нечего будет сканировать на этапах производства... 3. На каждом этапе действия такие: - сканируем штрих-код в поле - в событии после обновления поля процедура, которая находит по считанному штрих-коду запись нужного заказа и делает нужные действия. Отладить можно и без сканера (ean-13 можно ввести с клавиатуры - цифры под штрих-кодом) AkinaВ этом смысле изменение по данным от сканера никак не отличается от изменения по данным, введённым оператором на форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 00:18 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
vmag, а что это за плюха " чем все тут пишут"? Автор вопроса коротко и в общем спросил, ему коротко и в общем ответили. Причём даже наводящие вопросы задали, для конкретизации. Будет конкретика - будут конкретные ответы. Если автору это точно нужно - будет диалог. А накручивать все возможные варианты "до, после, сбоку и во время" и делать ликбез на все эти варианты - можно бесконечно. Есть время и желание - развлекайтесь, только без поплёвывания по сторонам, плиз. А ежели ответить на "от отсутствия практики" - то тут ещё проще. Я весьма слаб в Access, хотя и зарабатываю с помощью его денежку. И пусть не идеально, но варианты с использованием сканера и штрих кодов давно использую, и весьма успешно. Могу даже ссылочку дать на мой сайт с работающей программой учёта (на Access сделано). Так что ваше замечание немного не по теме. К слову, рекомендую вместо классики EAN13 использовать Code 128. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 02:08 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
Tarasiosvmag, а что это за плюха " чем все тут пишут"? Автор вопроса коротко и в общем спросил, ему коротко и в общем ответили. Причём даже наводящие вопросы задали, для конкретизации. Будет конкретика - будут конкретные ответы. Если автору это точно нужно - будет диалог. А накручивать все возможные варианты "до, после, сбоку и во время" и делать ликбез на все эти варианты - можно бесконечно. Есть время и желание - развлекайтесь, только без поплёвывания по сторонам, плиз. А ежели ответить на "от отсутствия практики" - то тут ещё проще. Я весьма слаб в Access, хотя и зарабатываю с помощью его денежку. И пусть не идеально, но варианты с использованием сканера и штрих кодов давно использую, и весьма успешно. Могу даже ссылочку дать на мой сайт с работающей программой учёта (на Access сделано). Так что ваше замечание немного не по теме. К слову, рекомендую вместо классики EAN13 использовать Code 128. Совершенно согласен. Есть вопрос - есть ответ и нечего додумывать, а чё там ТС имел в виду. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 06:22 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
Tarasiosvmag, а что это за плюха " чем все тут пишут"? Автор вопроса коротко и в общем спросил, ему коротко и в общем ответили. я отвечал на следующий вопрос и не вам drobashА можно поподробнее? и думаю ответ более чем исчерпывающий, после которого больше скорее всего не будет вопросов, если кого задел - сорри... не со зла, просто обычно если отвечаю - то не для галочки, а основательно... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 10:46 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
По реализации сканирования в формы могу дать совет, который облегчит взаимодействие формы и сканера. Фактически сканер - это та же клавиатура, но символы генерируются автоматически. Чтобы форма правильно восприняла сканированный код, нужно, чтобы фокус ввода находился в тектовом поле для ввода штрихкода. Это не всегда получается, особенно если сканер совмещен с терминалом и пользователь может случайно нажать на форму и увести фокус в другое поле. Для обхода этого я в свое время использовал возможность сканеров генерировать не только потфикс (Enter, например), но и префикс - так называемые AIM коды, где чаще всего 3 символа пределяют тип отсканированного кода (EAN13, Code128 и т.п.). Таким образом, если мы включаем AIM коды и на форме ввода отслеживаем все нажатия клавиш, мы всегда можем распознать событие сканирования штрихкода независимо от фокуса ввода и реагируем только на заданные типы ШК, не обращая внимания на случайно отсканированные коды и передаем только нужную информацию в необходимые поля формы, определяя при необходимости нужный тип уже по содержанию ШК. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 12:25 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
MrShinФактически сканер - это та же клавиатура, но символы генерируются автоматически. ЛЮБОЙ сканер и ЛЮБОЙ способ программной работы с ним - это ВСЕГДА эмуляция клавиатурного ввода? Точно? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 12:33 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
AkinaЛЮБОЙ сканер и ЛЮБОЙ способ программной работы с ним - это ВСЕГДА эмуляция клавиатурного ввода? Точно? Те сканеры, которые я держал в руках все эмулировали клавиатуру. Уверен, что есть спецализированные, которые заточены под определенное приложение и работают с ним напрямую, а не как клавиатура. Но если ТС не уточнял этот момент, принимаем, что используется сканер-эмулятор клавиатуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 12:43 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
MrShinУверен, что есть спецализированные, которые заточены под определенное приложение и работают с ним напрямую, а не как клавиатура. Даже к эмулирующему сканеру вполне может придаваться какая-нить DLL, которая позволяет "подёргать" его за ниточки чуть более плотно. А даже если и нет - стопудово обслуживающая трансляцию в клавиатурные коды библиотека имеет дополнительные свойства и методы, также доступные программно. Ведь как-то этот девайс должен настраиваться... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 13:45 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
Некоторые простые девайсы настраиваются сканированием служебных кодов, у других действительно есть свое API для настройки и получения данных, но, как правило, у каждого сканера есть возможность работы как эмулятора клавиатуры ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 13:56 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
vmagна самом деле всё гораздо сложнее, чем все тут пишут (думаю от отсутствия практики): - сканер считывает только штрих-код (если это сканер штрих-кода) - штрих-код сначала нужно распечатать, потом уже сканировать (речь идет не о поиске товара а о поиске номера заказа) - перед этим нужно определиться с типом используемого штрих-кода (ean13, code39, ...) - нужно придумать как связать № заказа с штрих-кодом (сам номер заказа засунуть в штрих-код или добавить рядом поле для хранения значения штрихкода) помня о том, что одни штрих-коды могут хранить только цифры, другие - цифры и только латинские буквы, 2D и круче требуют дорогих сканеров... С этим как раз таки все нормально, т.е. штрих-код на бумаге = № заказа в базе. А задача в том чтобы я отсканировал штрих-код и он автоматически нашелся в базе, а его состояние изменилось бы на "выполнено" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 14:02 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
Сканер эмулирует не строку целиком, а последовательное нажатие клавиш с интервалом в 0.2 сек. Поэтому символы сначала надо собрать в кучу. Я сделал так: Код: vbnet 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.
К началу сканирования фокус ввода должен быть на поле "ПолеФокус", переменная "strКлавиатура" обнулена. Процедуры "ВводСерийных" и "ОбработкаНажатия" определяют, что делать со считанным ШК или с буквами введенными с клавиатуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 14:31 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
vmag, в силу того, что drobash просил о программной стороне вопроса, а вы выдали тонну чисто организаторской/ бухгалтерской стороны процесса, то ценность вашего "исчерпывающего ответа" в данном разрезе увы - стремится к нулю. Подтверждением этому является то, что drobash в ответ на ваш спитч буквально повторил свой запрос. И не считайте, плиз, себя настолько умным, типа другим не понять ваш сарказм и проявленное высокомерие. Ну да ладно, извинения увидел, тема эта закрыта. Так как drobash сказал, что "есть база с заказами", я понадеялся, что это база достаточно рабочая, и сам drobash имеет достаточный уровень знаний. Потому обрисовал ему общую схему процесса. Как вижу, оказалось этого недостаточно. drobash, давайте думать вместе, если вопрос ваш ещё актуален и я его правильно понимаю. Итак, у вас есть база с заказами. Пример базы вы не прикрепили, потому будем оперировать произвольными названиями. Если что - уточняйте. Дано и задачи: 1. Есть таблица с номерами заказов, скорее всего, кроме номера заказа нужны ещё дата заказа, реквизиты клиента, может быть сумма и так далее. Пусть это будет таблица ТЗаказ. Я там ввёл три записи для образца, с номерами заказов "123", "124", "125". 2. На некой форме (FGlav) есть поле (Поле4, лень было переименовывать), куда вы планируете вводить номер заказа для поиска. Ручками будете вводить, или "пикая сканером" - это самой программе глубоко фиолетово. 3. После ввода номера заказа в это поле программа должна сделать два действия: а) отобразить в другой части формы реквизиты найденного заказа б) выполнить дополнительные действия. Так вы указали "к примеру", я так понимаю - это не критично. Но пусть в некоем поле в случае успешного поиска отобразится "Выполнено". Хотя можно просто заставить прогу выдать сообщение, или даже открыть дополнительную форму с любыми словесами ) Смотрите пример. В открывшейся форме жмите "Новый документ". В моём примере в случае неудачи прога выдаёт сообщение "Заказа с таким номером не найдено", меняет значение статуса на "Не выполнено" и подсвечивает его красным (это уже чисто понты, но так нагляднее :)). Ежели заказ найден - запись с реквизитами заказа падает в подчинённую таблицу ТПодч согласно номера открытого документа, выдаётся сообщение "Заказ найден", значение статуса меняется на "Выполнено", подсвечивается зелёным. Ответ устраивает? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 20:08 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
хотя... если нужно, что статус самого заказа менялся... Опять таки, не видя реального примера вашей базы... Ну пусть в таблице с номерами заказов будет ещё одно поле, "Статус". И в обработку поле4 (в "успешную" часть) втыкните запрос на обновление поля "статус" в таблице заказов, с условием отбора по числу в поле4. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2016, 22:58 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
Tarasios, да, в принципе это то что нужно, только надо чтобы "статус" просто менялся на "выполнено" из уже готового поля со списком. Вот пример: https://yadi.sk/d/nTsyM3HXssiNf ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2016, 14:06 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
drobash, 1. Лень ставить 2007 офис, если не трудно - дайте пример в формате 2003. 2. А какой смысл выбора Статуса именно в поле со списком? Поле со списком нужно, если вы планируете ручками выбирать значение. Но так как вы сами определили, что оно будет ставится автоматом - то надобности в нём не вижу. 3. Если нужен гибридный выбор - то есть автоматом, и ручками - то я в прошлом сообщении (которое было дополнением к основному примеру) рассказал, как сделать. Только вместо простого поля сделайте своё поле со списком, определите набор значений, потом выставьте его на форму, перенастройте пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2016, 16:54 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
Tarasios, Я пытался сохранить в старом формате, но access не дал (используются возможности текущего формата). В Статусе есть несколько значений и он, как правило, стоит "в работе", а при сканировании хочется чтобы он автоматически менялся на "выполнено". ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2016, 22:34 |
|
Изменение записи с помощью сканера штрих-кодов
|
|||
---|---|---|---|
#18+
drobash, при всём моём уважении - я кинул вам рабочую модель, по паре нюансов подробно всё на словах расписал. Если вы Аксес хотя бы полчаса пролистали - то для вас не составит труда воплотить то, о чём вы спрашиваете. Например, что такое запрос на обновление (обновить запись поле "Статус") с критерием отбора (согласно введённого номера заказа), и как его запускать кнопкой или из под VBA (тем более, даже в моём примере есть образцы этому). Там прочитать и разобраться - ну минут 20 от силы. Если по каким то причинам у вас нет времени/желания/возможностей/способностей (нужное подчеркнуть) разобраться в этом простейшем минимуме, то, может быть, вам пока не стоит замахиваться на что то сравнительно серьёзное? Ну или наймите исполнителя. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2016, 23:46 |
|
|
start [/forum/topic.php?fid=45&msg=39263054&tid=1613414]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 353ms |
total: | 499ms |
0 / 0 |