Считать штрих код без поля ввода

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
gopstop2007
✯ Ветеран ✯
Сообщения: 1369
Зарегистрирован: 25 Март 2009, 21:55

Считать штрих код без поля ввода

Сообщение gopstop2007 »

Подскажите уважаемые, может кто сталкивался, в какие event-ы нужно добавить вставки, чтобы считать штрих код сканером подключенным в клавиатурном режиме и без дополнительного поля.
Есть например только таблица, сканируем штрих код, например: 044052678911 в конце которого еще <13> (CR) и чтобы он без лишних телодвижений считался и добавился в таблицу.
Используется код

Код: Выделить всё

l_barcode = CLIPBOARD()
Спасибо заранее, за Ваше внимание.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4625
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Считать штрих код без поля ввода

Сообщение Игорь Столяров »

В случае сканера в разрыв клавиатуры - нужно ожидать события нажатия клавиши начала кода (???) в Prop:AlertKey
и далее получать из буфера клавиатуры последовательность цифр (или символов) до завершающего символа кода.
По принципу работы - это чем-то похоже на обработку ввода Locator Browse.

Гипотетически наверно такое сделать можно, но на практике всё-таки проще получить сразу весь код со сканера
в скрытое поле ввода и обработать завершение его ввода по событию Prop:Accepted этого поля. Я так думаю. :)
«V» значит Вендетта !

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1667
Зарегистрирован: 06 Ноябрь 2014, 12:48

Считать штрих код без поля ввода

Сообщение finsoftrz »

С точки зрения интерфейса, клавиатурный ввод обычно ассоциируется с конкретным экранным контролом. Поэтому лучше оставить поле ввода, обеспечив передачу фокуса в него после открытия окна и сканирования. Если на окне только один list, то можно навесить alert и обрабатывать по аналогии с инкрементным локатором. Но по соображениям стандартизации интерфейса я бы так не стал делать. Без поля ввода можно использовать подключение сканера по сом порту и слушать его по таймеру в окне. Это решение хорошее, если сканер не нужно использовать в других программах, использующих только клавиатурный ввод.
Рязань решает.

kreator
✯ Ветеран ✯
Сообщения: 3724
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Считать штрих код без поля ввода

Сообщение kreator »

Поддержу Игоря Столярова и finsoftrz. Лучше оставить Entry поле. Я сделал и так и так. В таймере читаю com-порт, а обработка штрих-кода на Entry поле. Чтобы не писать два одинаковых обработчика.
We are hard at work… for you. :)

gopstop2007
✯ Ветеран ✯
Сообщения: 1369
Зарегистрирован: 25 Март 2009, 21:55

Считать штрих код без поля ввода

Сообщение gopstop2007 »

Спасибо за нужную информацию,сам использую entry поле, просто подумалось - а вдруг... :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4625
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Считать штрих код без поля ввода

Сообщение Игорь Столяров »

gopstop2007 писал(а):
07 Ноябрь 2019, 22:26
сканируем штрих код и чтобы он без лишних телодвижений считался и добавился в таблицу.
За неимением лучшего - Up-нем тему ! :)

Можно зайти на решение вопроса как делают в 1С. Там штрих-код всегда считывается сканером через F7.
Поэтому просто в сканере программируется префикс к считываемому коду как скан-код F7,потом мы в нужном окне ждём HOTKEY F7,
по нему открываем окно с полем и получаем в него штрих-код. Окно сразу закрывается, возвращая в BROWSE считанный код и т.д.

В таком решении есть скрытый плюс. Для EAN-13 неактуально, но для символьно-цифровых кодов (та же маркировка в Data Matrix) -
при использовании "клавиатурных" сканеров (USB HID), нужно делать перекодировку в зависимости от текущей раскладки клавиатуры и
нажатой клавиши CapsLock. Так вот проще всё это делать в одном общем окне для считывания всех штрих-кодов … :)
«V» значит Вендетта !

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1667
Зарегистрирован: 06 Ноябрь 2014, 12:48

Считать штрих код без поля ввода

Сообщение finsoftrz »

Чисто интуитивно, я бы не пошел по такому пути.
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4625
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Считать штрих код без поля ввода

Сообщение Игорь Столяров »

Ну из неприятных вещей - только необходимость специально "по 1-эсовски" программировать сканер (что делается несложно).
Зато достигается желаемый результат, особенно если спрятать (HIDE) окно ввода штрих-кода.

Т.е. юзер работает с обычным списком, берёт сканер и считывает код, код добавляется в список. Всё.
Хорошая программа, хороший сканер — что еще надо человеку, чтобы встретить старость? ;)
«V» значит Вендетта !

Аватара пользователя
porutchik
Бывалый
Сообщения: 62
Зарегистрирован: 01 Февраль 2009, 5:35

Считать штрих код без поля ввода

Сообщение porutchik »

а почитать книжку сканера? там есть управляющие символы - сканируешь их и меняешь поведение сканера

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4625
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Считать штрих код без поля ввода

Сообщение Игорь Столяров »

porutchik писал(а):
01 Декабрь 2019, 7:07
а почитать книжку сканера?
Это всегда полезно делать. Ведь именно в этой книжке написано, что префиксы и суффиксы скан-кода
программируются с помощью специальной утилиты настройки сканера, а не считыванием скан-кодов … ;)
«V» значит Вендетта !

Аватара пользователя
porutchik
Бывалый
Сообщения: 62
Зарегистрирован: 01 Февраль 2009, 5:35

Считать штрих код без поля ввода

Сообщение porutchik »

Игорь Столяров писал(а):
01 Декабрь 2019, 7:17
помощью специальной утилиты настройки сканера, а не считыванием скан-кодов
у меня почему-то был именно такой

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4625
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Считать штрих код без поля ввода

Сообщение Игорь Столяров »

Ну может у Вас более продвинутая модель, а у меня бюджетные.
В любом случае, так или иначе (через утилиту или считыванием "зебры") можно настроить префикс считываемого скан-кода,
для открытия окна куда этот код будет приниматься и обрабатываться. Что и делается в 1С, но можно реализовать и в Clarion.
«V» значит Вендетта !

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1667
Зарегистрирован: 06 Ноябрь 2014, 12:48

Считать штрих код без поля ввода

Сообщение finsoftrz »

Игорь Столяров писал(а):
01 Декабрь 2019, 6:17
Ну из неприятных вещей - только необходимость специально "по 1-эсовски" программировать сканер (что делается несложно).
Зато достигается желаемый результат, особенно если спрятать (HIDE) окно ввода штрих-кода.

Т.е. юзер работает с обычным списком, берёт сканер и считывает код, код добавляется в список. Всё.
Хорошая программа, хороший сканер — что еще надо человеку, чтобы встретить старость? ;)
Во-первых, программировать сканер специально для работы в одной программе, когда он подключается к компьютеру с мультипрограммной средой, выглядит несколько нелогично.
Во-вторых, сканер в данном случае эммулирует нажатие на клавиатуре. С точки зрения интерфейса, результат должен попадать в поле ввода. Это ожидаемо для пользователя и соответствует стандартному подходу.
Кажется, что это все не так принципиально, реализовать можно действительно по разному. Но такие вот нюансы характеризуют стиль конкретного разработчика и продукта.
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4625
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Считать штрих код без поля ввода

Сообщение Игорь Столяров »

Разрешите не согласиться по пунктам.
finsoftrz писал(а):
01 Декабрь 2019, 13:41
мультипрограммной средой, выглядит несколько нелогично
Сканер подключается на рабочем месте продавца, где работает одна программа, а чаще всего это вообще одно окно программы. :)
finsoftrz писал(а):
01 Декабрь 2019, 13:41
Это ожидаемо для пользователя и соответствует стандартному подходу
Для пользователя ожидаемо получить значение кода. (точка) И его не должно волновать, что ввод этого кода зависит от раскладки
клавиатуры и состояния нажатия управляющих клавиш. Вопрос преобразования - решает кассовая программа. В этом плане COM сканер
проще - он всегда возвращает одной и то же. :)
«V» значит Вендетта !

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1667
Зарегистрирован: 06 Ноябрь 2014, 12:48

Считать штрих код без поля ввода

Сообщение finsoftrz »

Ну, Игорь, это уже манипуляция. :-)
Нигде не было написано, что речь про кассовую программу. Кассовый софт отдельная тема для разговора. Тем более, специализированный, а не "окно кассира" в контексте учетной системы. Там вообще считается, что сканеры должны подключаться через com порты, а не в разрыв клавиатуры. И клавиатура не должна иметь алфавита. И так далее. Могу много про это писать, но мне лениво и к теме не относится.
Когда вспомнили про желтых, то у меня даже ассоциации не возникло с кассовым софтом. Так как на 1с нет профессиональных кассовых программ. Когда такое нужно, то чаще работают с фронтолом, у них это мейнстрим.
Рязань решает.

Ответить