|
18.08.2011, 11:36 | #1 |
Участник
|
Сканер штрих-кодов и простая форма
Доброго времени суток, уважаемые.
Возник вопрос о простейшей, на первый взгляд, доработке: имеется форма с полем ввода ШК. Сделать так, чтобы ШК можно было бы вводить только с помощью сканера, и запретить ввод с клавиатуры. Модель сканера ШК может быть разная -- включая и те, которые подключаются в разрыв клавиатуры. Буду рад любым конструктивным мыслям. |
|
18.08.2011, 11:58 | #2 |
Участник
|
п.1) На сканере в качестве префикса настроить определённое сочетание клавиш.
п.2) Перехватывать это сочетание клавиш на форме и устанавливать фокус ввода в скрытое поле. п.3) В скрытом поле обрабатывать событие ввода и дублировать полученную информацию уже на видимом но залоченом контроле |
|
|
За это сообщение автора поблагодарили: Prophetic (1). |
18.08.2011, 12:02 | #3 |
Участник
|
Цитата:
скрытые поля, shadow-поля... обо все этом нельзя забывать при программной модификации кода... странный поиск, сортировка по скрытым полям и прочие побочные эффекты. лучше уж сделать нормальный validateField. |
|
04.08.2014, 19:32 | #4 |
Участник
|
Цитата:
Кодирование некоторой информации, конкретно, RecId определённой таблицы, по которому моно найти всю остальную требуемую информацию. Последний раз редактировалось Cardagant; 04.08.2014 в 19:35. |
|
05.08.2014, 06:11 | #5 |
Участник
|
Цитата:
RecId это как-то хардкорно, может есть какие другие Id или партия к примеру. |
|
|
За это сообщение автора поблагодарили: Cardagant (1). |
05.08.2014, 10:26 | #6 |
Участник
|
Спасибо за ответы! Судя по всему, в task'е формы можно перехватывать только определённые в макросе Task клавиши и сочетания клавиш.
По ссылке на форуме Mazzy, приведённой выше для Тройки, "горячие клавиши" перехватываются, используя WinApi. Нет ли способа сделать подобное в 2009й? Последний раз редактировалось Cardagant; 05.08.2014 в 11:01. |
|
05.08.2014, 19:51 | #7 |
Участник
|
Чем не нравится вариант "по таймеру" опрашивать контрол на наличие данных?
|
|
18.08.2011, 12:01 | #8 |
Участник
|
1. перехватываете метод task на форме.
2. разрешаете ввод в поле только, если сначала пришел какой-то специальный указанный вами управляющий код. 3. в методе modified поля запретите редактирование поля. управляющий код настройте в драйвере шрихкода. http://axapta.mazzy.ru/lib/barcode/#barcode_read ============= но вообще говоря, задача - изврат. не вижу смысла запрещать человеку вводить данные. правильный подход: 1. нужно введенные данные верифицировать. просто перехватите метод ValidateField и проверяйте конкретное поле для ввода ШК при помощи метода класса работы со штрихкодом. возвращайте false из ValidateField, если введенный ШК неправильный. 2. если человек ошибся, то аксапта не примет введенный код и вернет старое значение. при таком подходе вы оставите возможность ввода данных для человека. |
|
|
За это сообщение автора поблагодарили: Prophetic (1). |
18.08.2011, 12:33 | #9 |
Участник
|
Цитата:
Сообщение от mazzy
правильный подход:
1. нужно введенные данные верифицировать. просто перехватите метод ValidateField и проверяйте конкретное поле для ввода ШК при помощи метода класса работы со штрихкодом. возвращайте false из ValidateField, если введенный ШК неправильный. 2. если человек ошибся, то аксапта не примет введенный код и вернет старое значение. при таком подходе вы оставите возможность ввода данных для человека.
__________________
Ivanhoe as is.. |
|
18.08.2011, 14:56 | #10 |
Участник
|
Сие мне не известно. Руководство попросило сказать, есть ли возможность сделать именно так, как я описал. Хотя лично я тоже согласен с Mazzy ("изврат"), однозначно. Но похоже, явно не для защиты от неправильного ввода делается (посему, validate несколько не подходит).
|
|
18.08.2011, 21:11 | #11 |
Участник
|
Цитата:
То собранный товар бросали в проходах, то ленились идти подбирать товар в дальних зонах Административные меры решили заменить просто запретом, как более эффективное средство
__________________
Axapta v.3.0 sp5 kr2 |
|
18.08.2011, 15:12 | #12 |
Участник
|
Если из соображений "безопасности", то что помешает распечатать нужный штрих-код на принтере и его "подложить"? Других идей по цели закрытия ручного ввода в голову не приходит.
__________________
Ivanhoe as is.. |
|
18.08.2011, 15:14 | #13 |
Участник
|
|
|
18.08.2011, 18:08 | #14 |
Ищущий знания...
|
на форме созадть метод, который будет читать ком порт, и проверять введеноли с него значение.
написанный метод вызывать по таймауту на форме, если метод вернул штрих код вводить его в поле на форме. поле для ввода штрих кода сделать недоступным для редактирования.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
18.08.2011, 20:23 | #15 |
Участник
|
Цитата:
__________________
Ivanhoe as is.. |
|
19.08.2011, 09:39 | #16 |
Ищущий знания...
|
Да, да
про разрыв клавиатуры только сейчас заметил. Спасибо P.S. используйте сканера, которые подключются через ком порт и решение проблемы будет наиболее простым, как я писал выше
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
19.08.2011, 09:47 | #17 |
Участник
|
К стати эту часть вопроса
Цитата:
"Модель сканера ШК может быть разная" - т.е. решение должно поддерживать одновременно все варианты. Или фраза "Модель сканера ШК может быть разная" означает что в зависимость от выбора решения можно будет остановиться на любом но одном варианте подключения сканера ШК. Что именно имелось в виду? |
|
04.08.2014, 18:42 | #18 |
Участник
|
Всем добрый вечер!
Подниму тему. Требуется реализовать штриховое кодирование, при этом заполнять форму, согласно считанных значений. Почитав форум, пришёл к выводу, что лучше сделать скрытое поле, на которое передавать фокус при генерации некоторой "горячей клавиши". При перехвате F1 через Таск формы проблем не возникает. Заказчики выбрали клавишу F12 для данных целей. Как ни искал, не могу найти способ словить данную клавишу. Подскажите куда можно углубиться, чтобы решить задачу. DAX 2009, Вин7 Набрёл на данную тему: В одном из сообщений от glibs указан некоторый объект с названием Shop floor control, который на данный момент не могу найти. Также нашёл эту тему на форуме Mazzy. Но код там у меня не работает. Требуемые ДДЛки не существуют. Последний раз редактировалось Cardagant; 04.08.2014 в 19:14. |
|
04.08.2014, 19:17 | #19 |
NavAx
|
2 Cardagant
А чего кодирование? Зачем скрывать поле? |
|
07.08.2014, 10:30 | #20 |
Administrator
|
Cardagant, рекомендую вам открыть новую тему с вопросом "Как перехватить нажатие F12 в task?" Насколько я понял, у вас в этом проблема, и к оригининальному обсуждению она имеет только косвенное отношение.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
Похожие темы | ||||
Тема | Ответов | |||
«Обрезание» длинных штрих-кодов | 7 | |||
Подвисает сканер штрих-кодов | 0 | |||
AX 4.0 + сканеры штрих кодов | 11 | |||
Нужен совет по сканеру штрих-кодов | 5 | |||
Еще раз о подключении сканнера штрих кодов | 43 |
|