AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.08.2011, 11:36   #1  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Сканер штрих-кодов и простая форма
Доброго времени суток, уважаемые.
Возник вопрос о простейшей, на первый взгляд, доработке: имеется форма с полем ввода ШК. Сделать так, чтобы ШК можно было бы вводить только с помощью сканера, и запретить ввод с клавиатуры. Модель сканера ШК может быть разная -- включая и те, которые подключаются в разрыв клавиатуры.

Буду рад любым конструктивным мыслям.
Старый 18.08.2011, 11:58   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
п.1) На сканере в качестве префикса настроить определённое сочетание клавиш.
п.2) Перехватывать это сочетание клавиш на форме и устанавливать фокус ввода в скрытое поле.
п.3) В скрытом поле обрабатывать событие ввода и дублировать полученную информацию уже на видимом но залоченом контроле
За это сообщение автора поблагодарили: Prophetic (1).
Старый 18.08.2011, 12:01   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Prophetic Посмотреть сообщение
Буду рад любым конструктивным мыслям.
1. перехватываете метод task на форме.
2. разрешаете ввод в поле только, если сначала пришел какой-то специальный указанный вами управляющий код.
3. в методе modified поля запретите редактирование поля.

управляющий код настройте в драйвере шрихкода.
http://axapta.mazzy.ru/lib/barcode/#barcode_read


=============
но вообще говоря, задача - изврат.
не вижу смысла запрещать человеку вводить данные.

правильный подход:
1. нужно введенные данные верифицировать. просто перехватите метод ValidateField и проверяйте конкретное поле для ввода ШК при помощи метода класса работы со штрихкодом. возвращайте false из ValidateField, если введенный ШК неправильный.
2. если человек ошибся, то аксапта не примет введенный код и вернет старое значение.

при таком подходе вы оставите возможность ввода данных для человека.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Prophetic (1).
Старый 18.08.2011, 12:02   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
п.2) Перехватывать это сочетание клавиш на форме и устанавливать фокус ввода в скрытое поле.
п.3) В скрытом поле обрабатывать событие ввода и дублировать полученную информацию уже на видимом но залоченом контроле
Во-во, начинается...
скрытые поля, shadow-поля... обо все этом нельзя забывать при программной модификации кода...
странный поиск, сортировка по скрытым полям и прочие побочные эффекты.

лучше уж сделать нормальный validateField.
__________________
полезное на axForum, github, vk, coub.
Старый 18.08.2011, 12:33   #5  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от mazzy Посмотреть сообщение
правильный подход:
1. нужно введенные данные верифицировать. просто перехватите метод ValidateField и проверяйте конкретное поле для ввода ШК при помощи метода класса работы со штрихкодом. возвращайте false из ValidateField, если введенный ШК неправильный.
2. если человек ошибся, то аксапта не примет введенный код и вернет старое значение.

при таком подходе вы оставите возможность ввода данных для человека.
Поддерживаю. В чем смысл запрета ручного ввода?
__________________
Ivanhoe as is..
Старый 18.08.2011, 14:56   #6  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Поддерживаю. В чем смысл запрета ручного ввода?
Сие мне не известно. Руководство попросило сказать, есть ли возможность сделать именно так, как я описал. Хотя лично я тоже согласен с Mazzy ("изврат"), однозначно. Но похоже, явно не для защиты от неправильного ввода делается (посему, validate несколько не подходит).
Старый 18.08.2011, 15:12   #7  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Если из соображений "безопасности", то что помешает распечатать нужный штрих-код на принтере и его "подложить"? Других идей по цели закрытия ручного ввода в голову не приходит.
__________________
Ivanhoe as is..
Старый 18.08.2011, 15:14   #8  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Если из соображений "безопасности", то что помешает распечатать нужный штрих-код на принтере и его "подложить"? Других идей по цели закрытия ручного ввода в голову не приходит.
Вот вот. И я такой же вопрос задал. Жду ответа.
Старый 18.08.2011, 18:08   #9  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
на форме созадть метод, который будет читать ком порт, и проверять введеноли с него значение.
написанный метод вызывать по таймауту на форме, если метод вернул штрих код вводить его в поле на форме.
поле для ввода штрих кода сделать недоступным для редактирования.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 18.08.2011, 20:23   #10  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от Prophetic Посмотреть сообщение
Модель сканера ШК может быть разная -- включая и те, которые подключаются в разрыв клавиатуры.
Цитата:
Сообщение от lev Посмотреть сообщение
на форме созадть метод, который будет читать ком порт, и проверять введеноли с него значение.
При чем тут ком порт?
__________________
Ivanhoe as is..
Старый 18.08.2011, 21:11   #11  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
но вообще говоря, задача - изврат.
не вижу смысла запрещать человеку вводить данные.
На РЦ пришлось запрещать ручной ввод штрих-кодов (товаров и кодов ячеек) потому-что народ начал злоупотреблять.
То собранный товар бросали в проходах, то ленились идти подбирать товар в дальних зонах

Административные меры решили заменить просто запретом, как более эффективное средство
__________________
Axapta v.3.0 sp5 kr2
Старый 19.08.2011, 09:39   #12  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
При чем тут ком порт?
Да, да
про разрыв клавиатуры только сейчас заметил. Спасибо

P.S. используйте сканера, которые подключются через ком порт и решение проблемы будет наиболее простым, как я писал выше
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 19.08.2011, 09:47   #13  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
К стати эту часть вопроса
Цитата:
Сообщение от Prophetic Посмотреть сообщение
Модель сканера ШК может быть разная -- включая и те, которые подключаются в разрыв клавиатуры
можно трактовать по разному.

"Модель сканера ШК может быть разная" - т.е. решение должно поддерживать одновременно все варианты. Или фраза "Модель сканера ШК может быть разная" означает что в зависимость от выбора решения можно будет остановиться на любом но одном варианте подключения сканера ШК.

Что именно имелось в виду?
Старый 04.08.2014, 18:42   #14  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Всем добрый вечер!

Подниму тему. Требуется реализовать штриховое кодирование, при этом заполнять форму, согласно считанных значений. Почитав форум, пришёл к выводу, что лучше сделать скрытое поле, на которое передавать фокус при генерации некоторой "горячей клавиши". При перехвате F1 через Таск формы проблем не возникает.
Заказчики выбрали клавишу F12 для данных целей. Как ни искал, не могу найти способ словить данную клавишу.

Подскажите куда можно углубиться, чтобы решить задачу. DAX 2009, Вин7

Набрёл на данную тему: В одном из сообщений от glibs указан некоторый объект с названием Shop floor control, который на данный момент не могу найти.

Также нашёл эту тему на форуме Mazzy. Но код там у меня не работает. Требуемые ДДЛки не существуют.

Последний раз редактировалось Cardagant; 04.08.2014 в 19:14.
Старый 04.08.2014, 19:17   #15  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
2 Cardagant
А чего кодирование?
Зачем скрывать поле?
Старый 04.08.2014, 19:32   #16  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
п.1) На сканере в качестве префикса настроить определённое сочетание клавиш.
п.2) Перехватывать это сочетание клавиш на форме и устанавливать фокус ввода в скрытое поле.
Я ориентировался на вот это сообщение от S.Kuskov. На самом деле можно и не скрывать поле. Вопрос, как перехватить F12 для перевода фокуса на нужное поле.


Цитата:
Сообщение от raz Посмотреть сообщение
2 Cardagant
А чего кодирование?
Кодирование некоторой информации, конкретно, RecId определённой таблицы, по которому моно найти всю остальную требуемую информацию.

Последний раз редактировалось Cardagant; 04.08.2014 в 19:35.
Старый 05.08.2014, 06:11   #17  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
305 / 137 (5) +++++
Регистрация: 21.04.2008
Цитата:
Сообщение от Cardagant Посмотреть сообщение
Я ориентировался на вот это сообщение от S.Kuskov. На самом деле можно и не скрывать поле. Вопрос, как перехватить F12 для перевода фокуса на нужное поле.
F12 врядли получится, вот еще ссылочку нашел F1 в штрихкодирование. Скрывают поле обычно чтобы юзеры не смогли ручками вводить значения в поле сканирования.



Цитата:
Сообщение от Cardagant Посмотреть сообщение
Кодирование некоторой информации, конкретно, RecId определённой таблицы, по которому моно найти всю остальную требуемую информацию.
RecId это как-то хардкорно, может есть какие другие Id или партия к примеру.
За это сообщение автора поблагодарили: Cardagant (1).
Старый 05.08.2014, 10:26   #18  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Спасибо за ответы! Судя по всему, в task'е формы можно перехватывать только определённые в макросе Task клавиши и сочетания клавиш.

По ссылке на форуме Mazzy, приведённой выше для Тройки, "горячие клавиши" перехватываются, используя WinApi. Нет ли способа сделать подобное в 2009й?

Последний раз редактировалось Cardagant; 05.08.2014 в 11:01.
Старый 05.08.2014, 19:51   #19  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
305 / 137 (5) +++++
Регистрация: 21.04.2008
Чем не нравится вариант "по таймеру" опрашивать контрол на наличие данных?
Старый 06.08.2014, 10:06   #20  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от Player1 Посмотреть сообщение
Чем не нравится вариант "по таймеру" опрашивать контрол на наличие данных?
Вы имели ввиду опрашивать COM-порт "по таймеру" на наличие данных? Если нет, поясните пожалуйста что имеется ввиду. Спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
«Обрезание» длинных штрих-кодов gl00mie DAX: Программирование 7 17.10.2008 18:16
Подвисает сканер штрих-кодов KingPeas DAX: Программирование 0 10.10.2008 09:01
AX 4.0 + сканеры штрих кодов Vitals DAX: Прочие вопросы 11 20.06.2008 17:35
Нужен совет по сканеру штрих-кодов slava09 DAX: Программирование 5 27.01.2005 03:11
Еще раз о подключении сканнера штрих кодов Alks DAX: Программирование 43 20.08.2004 15:04

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:27.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.