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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2013, 11:38   #1  
Xardas is offline
Xardas
Участник
 
28 / 13 (1) ++
Регистрация: 19.09.2012
А этот самый контрол, на котором вы перекрыли modified() не привязан к датасорсу, на котором вы вызываете last()?
Старый 13.02.2013, 11:41   #2  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от Xardas Посмотреть сообщение
А этот самый контрол, на котором вы перекрыли modified() не привязан к датасорсу, на котором вы вызываете last()?
Да, к датасорсу привязан, но modified перекрыт не на контроле, а на поле датасорса. вот
Старый 13.02.2013, 11:50   #3  
Xardas is offline
Xardas
Участник
 
28 / 13 (1) ++
Регистрация: 19.09.2012
Цитата:
Сообщение от Vasiliusis Посмотреть сообщение
Да, к датасорсу привязан, но modified перекрыт не на контроле, а на поле датасорса. вот
Возможно, это и есть причина. Поставьте точку останова внутри метода modified() и посмотрите, сколько раз он вызывается.
Старый 13.02.2013, 11:52   #4  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от Xardas Посмотреть сообщение
Возможно, это и есть причина. Поставьте точку останова внутри метода modified() и посмотрите, сколько раз он вызывается.
А тут самое интересное: я эту ситуацию уже обработал. Да, как-бы-рекурсия происходит, но я ее уже решил методом научного самотыка
Старый 13.02.2013, 12:38   #5  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
В общем, товарищи, я вообще ума не приложу, в чем дело, но при добавлении вызова NVAOMAFlightScheduleDS.clear(); перед вызовом NVAOMAFlightScheduleDS_DS.last(); начало пахать.

Итого:
X++:
...

if (!_flightScheduleRow)
    {
        ttsbegin;
        _nVAOMAFlightSchedule_new.insert();
        ttscommit;
        _flightScheduleRow = _nVAOMAFlightSchedule_new.RecId;

        //Выводим в форму, то шо получилось
        NVAOMAFlightScheduleDS.clear();               //<---------------- вот он, спаситель! :)
        NVAOMAFlightScheduleDS_DS.last();
        //NVAOMAFlightScheduleDS_DS.prev();

        //delete_from _nVAOMAFlightSchedule_new
            //where _nVAOMAFlightSchedule_new.RecId == _flightScheduleRow+1;
    }

...
если кто-то знает, почему это работает - объясните мен пожалуйста, мне крайне интересно!
Старый 13.02.2013, 12:40   #6  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Я так думаю, что имеет место где-то в датасорсе некий буфер, который хранит либо данные, либо саму команду, либо и то и другое, и при вызове last, а также при закрытии формы он выполняет команду и этот буфер сбрасывает... чортишто
Теги
волшебство, колдовство, магия

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Недоступность источника данных формы в display/edit-методах таблицы - баг или фича с глубоким смыслом? TasmanianDevil DAX: Программирование 10 03.08.2012 15:00
разная скорость отработки display методов на источнике данных формы wojzeh DAX: Программирование 10 05.05.2008 23:53
Странное поведение формы Создание строк vc DAX: Функционал 10 22.03.2006 10:32
Обновление данных формы из другой формы DiZ DAX: Программирование 4 14.10.2004 11:39
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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