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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.10.2003, 10:51   #1  
Valia is offline
Valia
Участник
 
139 / 23 (1) +++
Регистрация: 09.07.2003
Адрес: там
как отловить событие
Задумка, такая - необходимо, чтобы в гриде, при нажатии на Enter, управление переходило не к полю справа от текущего, а к полю снизу от текущего.
Для этого думаю необбходимо отлавливать событие нажатия кнопки.

Подскажите пожалуйста как оно называется.

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

Очень хотелось бы знать названия этих событий

Заранее огромное спасибо
Старый 07.10.2003, 10:59   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
События
Нажатие Enter можно отловить в методе task на форме.
События могут быть разные gotFocus, enter, mouseEnter, посмотрите описание методов в Руководстве разработчика (Methods on form controls).
Старый 07.10.2003, 12:08   #3  
Valia is offline
Valia
Участник
 
139 / 23 (1) +++
Регистрация: 09.07.2003
Адрес: там
ну дайте хотя бы ссылочку конкретную, а то происходит блуждание от одного события к другому, это понятно, что ето одно из событий, а руководстве очень мутно написано, очень нужно поконкретнее.

Заранее спасибо
Старый 07.10.2003, 13:00   #4  
Peter Savintsev is offline
Peter Savintsev
Участник
 
246 / 119 (4) +++++
Регистрация: 14.12.2001
Нечто подобное я делал для ввода серийных номеров и гарантийных сроков для гарантийных талонов с помощью сканера штрих-кода. Не могу сказать, что мое решение изящное, однако ничего другого я придумать не смог. Вот оно (у нас на гриде две контролки, в которых при нажатии Enter курсор переходит на следующую запись, назовем их Control1 и Control2):

1. Заводим переменную curControl для хранения номера текущей контролки.

2. Перекрываем методы mouseDown на нужных контролках следующим образом:

PHP код:
public int mouseDown(int _xint _yint _buttonboolean _Ctrlboolean _Shift)
{
    
int ret;

    
curControl 1//здесь сохраняем номер выбраноой контролки
    
ret super(_x_y_button_Ctrl_Shift);

    Return 
ret;

3. Для поля, которое в гриде стоит справа от нужного нам (если наша контролка самая правая, то для первого поля) перекрываем метод gotFocus вот так:

PHP код:
    switch (curControl)
    {
        case 
:
            
Control1.setFocus();
        break;
        case 
:
            
Control2.setFocus();
        break;
    } 
4. Для Control1 перекрываем gotFocus:

PHP код:
public void gotFocus()
{
    
super();
    if (
curControl == 2)
        
Control2.setFocus();
    else
        
curControl 1;

5. Зеркальным образом перекрываем gotFocus для Control2.

6. Перекрываем modified для Control1 и Control2:

PHP код:
public void modified()
{
    
super();
    
DataSource_ds.next();

Где DataSource - имя источника данных для контролок Control1 и Control2.

Единственное ограничение этого решения - то, что с Control1 и Control2 нельзя перейти Tab'ом.

P.S. Пока писал, понял, что более красиво можно было сделать тоже самое, если сохранять на номер комнтролки, а ссылку на нее.
Старый 07.10.2003, 13:50   #5  
Valia is offline
Valia
Участник
 
139 / 23 (1) +++
Регистрация: 09.07.2003
Адрес: там
Спасибо большое
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
как отловить событие запуска формы chanchala DAX: Программирование 2 24.10.2008 09:56
Событие CloseCanсel ViV DAX: Программирование 6 27.10.2005 12:40
Событие на ActiveX Bars DAX: Программирование 3 20.10.2005 13:26
Как отследить событие в форме, созданной от RunBaseBatch pdojn DAX: Программирование 4 02.07.2004 15:28
Возможно ли перекрыть событие динамически? art DAX: Программирование 21 13.02.2003 16:08

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:10.