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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.02.2016, 13:51   #1  
Silence is offline
Silence
Участник
Аватар для Silence
 
287 / 27 (1) +++
Регистрация: 29.09.2004
Адрес: г. Москва, Зеленоград
Angry [Ax2009] Как сделать .SetTmp() из класса для датасурса формы?
День добрый.

Есть класс который вызывает форму. В классе готовятся данные которые .setTmpData() для датасурсов формы.

Пытаюсь сделать так:
X++:
    m_routeFormRun = ClassFactory::formRunClassOnClient( _args );
    m_routeFormRun.init();

    m_routeFormRun.dataSource( tableStr( Route ) ).cursor().setTmp();
    m_routeFormRun.dataSource( tableStr( Route ) ).cursor().setTmpData( this.route() );

    m_routeFormRun.dataSource( tableStr( RouteOpr ) ).cursor().setTmp();
    m_routeFormRun.dataSource( tableStr( RouteOpr ) ).cursor().setTmpData( this.routeOpr() );

    m_routeFormRun.run();
Не хочет зараза работать.Причем не работает только .setTmp(), так как если это сделать в ините формы, то .setTmpData() из класса отрабатывает как и положено. Подскажите, как указать датасурсу из класса, что он должен быть темповым?
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу)
Старый 17.02.2016, 14:14   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Я когда-то замечал, что некоторые вещи, например, кэширование display-методов, корректно отрабатывают в классе только при условии, что соотв. метод вызывается внутри Form_DS.init() после super(). Казалось бы, формально без разницы, делать ли это внутри или после Form_DS.init(), однако, в последнем случае нужного эффекта достичь не удавалось. Возможно, с setTmp() та же история.
Старый 17.02.2016, 14:32   #3  
axm2013
Гость
 
n/a
X++:
FormRun m_routeFormRun;
    TABLE_XXX test;
    Args    args = new args();
    
    test.setTmp();
    
    test.XXX = '123';
    test.insert();
    args.name(formStr(TABLE_XXX));
    m_routeFormRun = ClassFactory::formRunClassOnClient( args );
    m_routeFormRun.init();

    m_routeFormRun.dataSource(1).cursor().setTmp();
    m_routeFormRun.dataSource(1).cursor().setTmpData(test);
    
    m_routeFormRun.run();
    m_routeFormRun.wait();
На 12-ой такое работает ожидаемо.
Попробуйте так же
Старый 17.02.2016, 14:39   #4  
_AV_ is offline
_AV_
Участник
 
29 / 19 (1) ++
Регистрация: 27.02.2008
Адрес: Санкт-Петербург
Может быть из-за того, что Вы класс выполняете на сервере (соответственно таблица там же "живет", а подпихнуть ее вы пытаетесь на клиенте)?
За это сообщение автора поблагодарили: Silence (1).
Старый 17.02.2016, 14:41   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,430 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Silence Посмотреть сообщение
Не хочет зараза работать
А как именно не хочет? Остаётся пустым? Продолжает отображать постоянные данные? Выдаёт сообщение об ошибке?
Старый 17.02.2016, 14:52   #6  
Silence is offline
Silence
Участник
Аватар для Silence
 
287 / 27 (1) +++
Регистрация: 29.09.2004
Адрес: г. Москва, Зеленоград
Цитата:
Сообщение от _AV_ Посмотреть сообщение
Может быть из-за того, что Вы класс выполняете на сервере (соответственно таблица там же "живет", а подпихнуть ее вы пытаетесь на клиенте)?
Правда Ваша.
Спасибо за подсказку. Был уверен, что класс стартует на клиенте, а оказалось не так.

Извиняюсь, что ввел в заблуждение.
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ограничение выборки перед открытием формы - как лучше сделать? IKA DAX: Программирование 19 16.09.2013 16:01
Сюрприз Edit-метода AX2009 RU5 Pustik DAX: Программирование 12 22.09.2011 21:38
Определение родительского источника из класса, вызванного из дочерней формы KiselevSA DAX: Программирование 12 01.04.2011 18:18
AX2009: "Места" модуля и что с ними делать Ivanhoe DAX: Программирование 31 24.02.2011 23:53
MAP в качестве datasource формы IKA DAX: Программирование 10 13.05.2009 17:51

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

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

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