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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.06.2006, 07:00   #1  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Не берется значение контрола
Доброго времени суток, уважаемые Дамы и Господа!
Вот какая ситуация...
У формы есть датасоурс. На форме создал свой контрол(перечислимый тип) и edit методом из InventParameters вставляю значение в этот контрол при открытии формы. Затем, после нажатия кнопки ОК в CloseOK вставляю значение контрола в датасоурс. При открытии формы мой контрол показывает то, что надо. Но при нажатии ОК дебугер показывает что мой контрол имеет значенеие "". Соответственно ничего в датасоурс не вставляется. Если же просто поставить (ручками) курсор на контрол или поставить другое значение(выбрать тоже), то все отрабатывает нормально. Поскажите как быть и в чём проблема. Setfocus() и Gotfocus() в ините формы не срабатывают (но если и заставить так насильно вставлять курсор в мой контрол, то это крайний случай, ибо сее не желательно)...

Заранее всем благодарен.

С уважением - Sada...
Старый 21.06.2006, 07:42   #2  
Andrew Besedin is offline
Andrew Besedin
Участник
 
119 / 15 (1) ++
Регистрация: 25.01.2002
Привет!

Значение из ComboBoxа можно получить через метод selection().
__________________
Успехов!
Андрей Беседин
Старый 21.06.2006, 07:44   #3  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от Andrew Besedin
Привет!

Значение из ComboBoxа можно получить через метод selection().
Так и получаю. Просто фишка в том, что если контрол не был активен, то значение не берется

Последний раз редактировалось Sada; 21.06.2006 в 07:46.
Старый 21.06.2006, 08:16   #4  
Andrew Besedin is offline
Andrew Besedin
Участник
 
119 / 15 (1) ++
Регистрация: 25.01.2002
Напиши код едит-метода, плиз. Мне кажется, собака порылась там
__________________
Успехов!
Андрей Беседин
Старый 21.06.2006, 08:23   #5  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
PHP код:
edit CurrentShift CurrentShift (boolean _setCurrentShift _txt)
{
    
InventParameters    InventParameters;
    ;
    
InventParameters InventParameters::find();
        if(
_set)
        {
            
tmp_curshift _txt;
            return 
_txt;        }
        else
        {
            if(!
tmp_curshift)
                return 
InventParameters.CurrentShift;
            else
                return 
tmp_curshift;
        }

Форма вызывается 2 раза, поэтому пришлось вот так вот извратиться.tmp_curshift
объявлена в ClassDeclaration. Скорее всего проблема связана с тем что не вызывается Edit метод. НО КАКИМ образом, её Богу ума не прилажу...
Старый 21.06.2006, 09:17   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Вопрос: а ГДЕ этот эдит метод написан? Попробуй перенести его на датасорс.
И еще: не пробовал в ините после супера проинициализровать переменную? Все равно пусто?

С Уважением,
Георгий
Старый 21.06.2006, 09:17   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
А зачем вам что-то брать из контрола?
Вызовите этот метод со значением _set=false да и все.

PS Это уже замечание к реализации метода - InventParameters у вас используется только в одной ветке из трех, а ищите вы это значение в любом случае.
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 21.06.2006 в 09:19.
Старый 21.06.2006, 09:46   #8  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от George Nordic
Попробуй перенести его на датасорс.
И еще: не пробовал в ините после супера проинициализровать переменную? Все равно пусто?
И так и так пусто ((((((((((
Старый 21.06.2006, 09:50   #9  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от AndyD
А зачем вам что-то брать из контрола?
Вызовите этот метод со значением _set=false да и все.
.
Не понял...
Старый 21.06.2006, 10:09   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Ваш метод на датасоурсе? Надо вызывать так
X++:
    Object o;
    ;
    o = []; // InventTable_ds
    [] = o.CurrentShift(false, "");
Хотя, на самом деле, надо инициализировать, например, в Init формы
X++:
    InventParameters    InventParameters;
    ;
    ...
    InventParameters = InventParameters::find();
    tmp_curshift = InventParameters.CurrentShift;
    ...
Ваш edit-метод поменять на
X++:
edit CurrentShift CurrentShift (boolean _set, CurrentShift _txt)
{
    InventParameters    InventParameters;
    ;
        if(_set)
        {
            if (!_txt)
            {
                // если вам необходимо, чтобы значение было установлено всегда
                InventParameters = InventParameters::find();
                tmp_curshift = InventParameters.CurrentShift;
            }
            else
                tmp_curshift = _txt;
        }
        return tmp_curshift;
}
И при закрытии формы читать tmp_curshift
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Sada (1).
Старый 21.06.2006, 10:16   #11  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Sada! Ну, едрены пассатижи!

Лови форму: все работает.

Георгий
Вложения
Тип файла: xpo Tutorial4Sada.xpo (11.5 Кб, 167 просмотров)
За это сообщение автора поблагодарили: Sada (1), Gustav (2).
Старый 21.06.2006, 10:24   #12  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от AndyD
И при закрытии формы читать tmp_curshift
Удар по моему самомнению ниже пояса . Вы абсолютно правы. Как я сразу не допер. Спасибо огромное всем!!! (а AndyD - респект +1 )

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

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
теряется значение переменной laxel DAX: Программирование 3 05.02.2009 10:07
как передать значение из диалога в форму, вызываемую через menuItem? алька DAX: Программирование 9 25.06.2007 16:46
Web-форма: не отрабатывает selection() у контрола cherv DAX: Программирование 3 16.10.2006 15:08
Как при вводе новой записи установить значение поля по умолчанию Zman DAX: Программирование 3 17.01.2005 10:23
Значение по умолчанию в таблице bocman DAX: Программирование 4 15.08.2003 16:20

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

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

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