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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.07.2010, 14:30   #1  
hated8 is offline
hated8
Участник
Аватар для hated8
Злыдни
 
133 / 18 (1) ++
Регистрация: 27.06.2008
Перехват нажатия клавиш в диалоге
Здравствуйте, возможно ли как нибудь перехватить нажатие определенных клавиш в программно созданном диалоге?
__________________
Что сломалось не знаем, но уже немного подчинили...
Старый 13.07.2010, 16:17   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Нарисуйте свою форму и запустите ее в модальном режиме.

Кстати, данное решение имеет большой плюс, т.к. можно данную форму изменять (хайрить / добавлять контролы, например)

С Уважением,
Георгий
Старый 14.07.2010, 00:20   #3  
ddadream is offline
ddadream
Участник
Аватар для ddadream
 
130 / 17 (1) ++
Регистрация: 30.11.2001
Адрес: moscow
например так:
X++:
public class A2Tutorial extends RunBase
{
}

protected Object dialog()
{
    Dialog dialog;
    FormBuildButtonControl btn;
    ;
    dialog = super();
    dialog.caption("some stuff.");

    Btn = dialog.formBuildDesign().addControl(FormControlType::Button,'Button77' );
    Btn.text("Click me button77");
//    info(Btn.name());
    return dialog;

}

void Button77_clicked()
{;
    info('Button77_clicked()');
}

public void dialogPostRun(DialogRunbase dialog)
{;
    dialog.formRun().controlMethodOverload(true);
    dialog.formRun().controlMethodOverloadObject(this);
    super(dialog);
}

public container pack()
{
    return connull();
}

public boolean unpack(container packedClass)
{
    return true;
}

static void main(Args args)
{
    A2tutorial f = new A2tutorial();
;
    if (f.prompt())
    {
        f.run();
    }

}
Старый 14.07.2010, 09:12   #4  
hated8 is offline
hated8
Участник
Аватар для hated8
Злыдни
 
133 / 18 (1) ++
Регистрация: 27.06.2008
Ну с clicked то все понятно!
А вот как мне перехватить например нажатие "Ctrl + V"?
__________________
Что сломалось не знаем, но уже немного подчинили...
Старый 14.07.2010, 10:10   #5  
coolibin is offline
coolibin
Участник
 
264 / 68 (3) ++++
Регистрация: 07.04.2005
Ну, вообще, перехватить нажатие клавиш на уровне приложения (по крайней мере, в третьей версии) можно в SysSetupFormRun.task() (там _p1 - код нажатой клавиши). Только вот есть сомнения в целесообразности: не очень это вписывается в концепцию работы с системой. Уверен, если бы вы объяснили, зачем такая необходимость вдруг возникла, коллеги смогли бы порекомендовать что-нибудь более бэстпрактисное.
Старый 14.07.2010, 10:22   #6  
hated8 is offline
hated8
Участник
Аватар для hated8
Злыдни
 
133 / 18 (1) ++
Регистрация: 27.06.2008
Цитата:
Уверен, если бы вы объяснили, зачем такая необходимость вдруг возникла, коллеги смогли бы порекомендовать что-нибудь более бэстпрактисное.
Задача значит следующая.... )
На складе ряд номенклатур отпускается со штрих кодами, с помощью сканера.
Сканер запрограмирован как:
Ctrl + N
Ctrl + V
Ctrl + S
т.е. создает в табл новую запись, вставляет в нее штрих код - сохраняет...

А приемка этих номенклатур по тем же штрих кодам ведется из другой формы, по следующей логике:
(по ctrl+n сканера)открывается диалог
(по ctrl+V сканера)в поле диалога вставляется штрих код,
а вот Ctrs + S мне надо перехватить и сделать closeok() ентого диалога....
__________________
Что сломалось не знаем, но уже немного подчинили...

Последний раз редактировалось hated8; 14.07.2010 в 10:24.
Старый 14.07.2010, 10:23   #7  
hated8 is offline
hated8
Участник
Аватар для hated8
Злыдни
 
133 / 18 (1) ++
Регистрация: 27.06.2008
Я предложил как вариант, открывать не диалог а форму с таблицей куда будет по тому же принципу набиваться много штрих кодов, а после нажатия Ок они поочередно обработаются, но рокуводство по каким то причинам такой вариант не устроил....
Вот и извращаюсь.....
__________________
Что сломалось не знаем, но уже немного подчинили...
Старый 14.07.2010, 10:30   #8  
coolibin is offline
coolibin
Участник
 
264 / 68 (3) ++++
Регистрация: 07.04.2005
Цитата:
Сообщение от hated8 Посмотреть сообщение
Я предложил как вариант, открывать не диалог а форму с таблицей куда будет по тому же принципу набиваться много штрих кодов...
Мое мнение, что предложенное вами решение более логичное. Думаю, лучше пободаться с начальством, например, сказать, что то, что они хотят - невозможно.
Старый 14.07.2010, 10:57   #9  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от hated8 Посмотреть сообщение
Я предложил как вариант, открывать не диалог а форму с таблицей куда будет по тому же принципу набиваться много штрих кодов, а после нажатия Ок они поочередно обработаются, но рокуводство по каким то причинам такой вариант не устроил....
Вот и извращаюсь.....
Руководство - это пользователи или специалисты по Аксапте? Как-то не конструктивно отклонять предложение, не объяснив критериев отказа.

Предложенный вами вариант, мне кажется, оптимален. Опять же его можно сделать более универсальным - буферная таблица со списком штрих-кодов, на основании которой создаются строки в стандартных документах: заказах, журналах и т.п. В том числе такой вариант менее прихотлив к самим сканерам - можно использовать другие сканеры, при этом создание документов останется стандартным, а "дописать" придется только заполнение вашей упрощенной таблички-буфера.
__________________
Ivanhoe as is..
Старый 14.07.2010, 12:34   #10  
ddadream is offline
ddadream
Участник
Аватар для ddadream
 
130 / 17 (1) ++
Регистрация: 30.11.2001
Адрес: moscow
тогда стоит посмотреть еще вот этот пост.
+ Перехват событий на форме DAX 2009
Ctrl+(S,N,V) поймать таким образом можно.

Ctrl+S можно поймать в поле датасорса, при сохранении будет вызван метод write или insert.

Опять же вопрос фокуса возникает, как быть уверенным что Ctrl+V отработает именно в поле ввода, даже если форма его и поймает, то передаваемое значение вряд ли.

Последний раз редактировалось ddadream; 14.07.2010 в 12:44.
Теги
сканер, штрихкод

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Замена Ctrl+Break на другую комбинацию клавиш Владимир Максимов DAX: Программирование 3 25.03.2009 14:24
Не воспринимаются нажатия клавиш chi DAX: Программирование 1 11.05.2006 10:41
Перехват клавиш... Dronas DAX: Программирование 20 17.11.2004 14:08
Перехват нажатия кнопки документооборота Hamster DAX: Программирование 1 05.11.2004 13:19
Перехват нажатия клавиш в ListViewControl rumpleteazer DAX: Программирование 1 08.10.2002 09:41

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

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

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