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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.06.2006, 10:28   #1  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Странное поведение контрола
Доброго времени суток, уважаемые Дамы и Господа!!!
Ситуация: на форме перекрыл метод task(). Там отлавливаю нажатие ентера на определенном контроле и увеличиваю свою переменную Qty на величину этого контрола(контрол типа real). Есть второй контрол, у него есть дисплейный метод (тоже real), который возвращает Qty.
Проблема: дисплейный метод выводит округленное значение по правилу округления, а мне этого совсем не нада. Почему так??? Подскажите пожалуйста, что делать.

И еще вопросик: как после нажатия Enter вернуть курсор в тот же контрол??? вызывал методы контролов и enter() и gotfocus() и setFocus() ничего не помогает.

С уважением - Sada...
Старый 01.06.2006, 10:45   #2  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Цитата:
Сообщение от Sada
И еще вопросик: как после нажатия Enter вернуть курсор в тот же контрол??? вызывал методы контролов и enter() и gotfocus() и setFocus() ничего не помогает.

С уважением - Sada...
Если перекрытом методе enter() не вызывать super() курсор останеться в контроле.
Старый 01.06.2006, 10:48   #3  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от KMV
Если перекрытом методе enter() не вызывать super() курсор останеться в контроле.
Не помогло....
Старый 01.06.2006, 10:54   #4  
Neosy is offline
Neosy
Участник
Аватар для Neosy
MCBMSS
 
29 / 14 (1) ++
Регистрация: 11.09.2002
Адрес: Москва
Дисплейный метод делает округление, т.к. у него есть тип. Округление происходит в соответствии с настройками этого типа.
Старый 01.06.2006, 11:01   #5  
Neosy is offline
Neosy
Участник
Аватар для Neosy
MCBMSS
 
29 / 14 (1) ++
Регистрация: 11.09.2002
Адрес: Москва
SetFocus() прекрасно работает. Вот пример.
Код:
public int task(int _taskId)
{
    int ret;
    ;
    ret = super(_taskId);
    if (_taskId == 288)  // Enter
    {
        if (!RealEdit.realValue())
            l = 1;
        else l = 1 / RealEdit.realValue();
        RealEdit.setFocus(); // Возвращаемся на прежний контрол
    }
 
    return ret;
}
За это сообщение автора поблагодарили: Sada (1), VKUR (1).
Старый 01.06.2006, 11:04   #6  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Цитата:
Сообщение от Sada
Не помогло....
Точно, заблудился что-то..
Старый 01.06.2006, 11:05   #7  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от Neosy
SetFocus() прекрасно работает. Вот пример.
Код:
public int task(int _taskId)
{
    int ret;
    ;
    ret = super(_taskId);
    if (_taskId == 288)  // Enter
    {
        if (!RealEdit.realValue())
            l = 1;
        else l = 1 / RealEdit.realValue();
        RealEdit.setFocus(); // Возвращаемся на прежний контрол
    }
 
    return ret;
}
Super() не там у меня стоял... Спасибо большое
С этим разобрались... но вот как быть с округлением???...
Старый 01.06.2006, 11:09   #8  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
С округлением - надо завести EDT с большим кол-вом знаков после запятой и именно его возвращатьв методе. Только есть одна мелочь - они всегда будут все показываться, даже если все =0

а в task можно просто taskId заменить на 0 (до super)
Старый 01.06.2006, 11:10   #9  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Посмотрите на возвращаемый EDT дисплей-метода. Он имеет нужную вам точность? Округление так же может быть где-нибудь в коде.

Последний раз редактировалось oip; 01.06.2006 в 11:13.
Старый 01.06.2006, 11:21   #10  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Да, действительно... Про то что EDT в таких случаях требуется я и не знал .Всем огромное спасибо!!! Все работает как надо

С уважением - Sada...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Странное поведение Lookup CDR DAX: Программирование 5 21.02.2007 11:17
Странное поведение сессий sergeypp DAX: Администрирование 11 27.04.2006 11:09
Странное поведение формы Создание строк vc DAX: Функционал 10 22.03.2006 10:32
Странное поведение складских проводок в закупках skof DAX: Прочие вопросы 7 11.10.2005 14:56
Странное поведение резервирования после создания спланированной закупки. NEO DAX: Функционал 7 01.07.2004 14:03
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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