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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.01.2010, 12:42   #1  
maze is offline
maze
Участник
Аватар для maze
 
39 / 10 (1) +
Регистрация: 21.02.2003
Адрес: Одесса
Datasource временных таблиц
AX 3 SP3 KR3

Есть форма в которой есть временная таблица например SmthTrans. Создан класс, наследуемый от RunbaseBatch который должен обновлять значения этой временной таблицы.
Для того, чтобы получить значения для обновения пишу следующий код в классе
X++:
main( Args _args)
{
Updater upd = new Updater();
...
upd.run(args)
...
}
void run(args _args)
{
SmthTrans trans;
FormDataSource fds;
QueryRun qr;
;
ttsbegin;
fds = _args.record.datasource();
qr = fds.queryrun();
while( qr.next)
{
trans = qr.get(tablenum(SmthTrans));
trans.price = 15;
trans.update();
}
ttscommit;
}
Так вот . fds возвращает Null. хотя если написать
X++:
trans = _args.record();
возвращается текущая запись.
Кто то сталкивался с такой ситуацией. Может быть такую задачу нужно решать совсем другим путем?
Старый 15.01.2010, 12:56   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
У меня не воспроизвелось. Т.е. fds оказался не NULL.

А как вызывается этот класс? Через MenuItemButton?
Старый 15.01.2010, 13:02   #3  
maze is offline
maze
Участник
Аватар для maze
 
39 / 10 (1) +
Регистрация: 21.02.2003
Адрес: Одесса
Да. через MenuitemButton
Старый 15.01.2010, 13:42   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А если таблицу временно сделать не временной, заработает?
Старый 15.01.2010, 14:18   #5  
Andrey Peganov is offline
Andrey Peganov
Участник
 
10 / 27 (1) +++
Регистрация: 19.01.2007
Это происходит, если класс серверный (свойства класса и пункта меню)
Решения два:
1. Очевидное - сделать класс клиентским
2. Если для производительности необходимо выполнять класс на сервере, нужно на форме в методе clicked() выбрать нужные записи в отдельную временную таблицу и передать её классу
За это сообщение автора поблагодарили: maze (1), tricky (1), S.Kuskov (2).
Старый 15.01.2010, 14:30   #6  
maze is offline
maze
Участник
Аватар для maze
 
39 / 10 (1) +
Регистрация: 21.02.2003
Адрес: Одесса
Цитата:
Сообщение от Andrey Peganov Посмотреть сообщение
Это происходит, если класс серверный (свойства класса и пункта меню)
Решения два:
1. Очевидное - сделать класс клиентским
Да! Это то что мне было нужно! Действительно работает!
СПАСИБО!
Цитата:
Сообщение от Andrey Peganov Посмотреть сообщение
2. Если для производительности необходимо выполнять класс на сервере, нужно на форме в методе clicked() выбрать нужные записи в отдельную временную таблицу и передать её классу
Про зависимость с типом класса я не знал. Поэтому так и сделал...
Теги
formdatasource, временная таблица, датасорс (datasource)

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расположение временных таблиц? ansoft DAX: Прочие вопросы 19 21.04.2013 20:37
Порядок выполнения GroupBy и Exists Join для временных таблиц S.Kuskov DAX: Программирование 6 06.12.2012 16:55
Заполнение DataSource из постоянной и временной таблиц m_ax DAX: Программирование 2 21.06.2007 13:08
Связи таблиц в datasource отчета Пагер Маяковский DAX: Программирование 1 02.07.2005 09:43
Дополнительные возможности временных таблиц: метод setTmpData vitk DAX: База знаний и проекты 1 19.06.2002 17:53

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

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

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