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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.10.2011, 10:11   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Вообщем, getFromDialog() тоже не подойдет, потому что не факт, что класс будет вызываться вручную, а не из кода. К тому же я его делаю под пакетник, там вроде тоже getFromDialog не работает.
Старый 20.10.2011, 10:16   #2  
offenmeier is offline
offenmeier
HAI; CAN HAS STDIO?
Аватар для offenmeier
Соотечественники
 
77 / 36 (2) +++
Регистрация: 17.02.2005
Адрес: Auckland, NZ
не нужно queryRun заново создавать. главное чтобы у вас переменная с датой была готова на момент запуска query. queryRun содержит объект запроса.

кодом, который я привёл (только вместо this.query нужно queryRun.query) вставляете свою дату и должно сработать, пакетная обработка или не пакетная.

интерактивно - забираете дату из getFromDialog, пакетно - используете pack/unpack. а вообще в любом случае pack/unpack, чтобы ранее введённая дата сохранялась для текущего пользователя. best practice
__________________
our sharp bitter vitriol is not that of the vulgar.
Старый 20.10.2011, 10:30   #3  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Сообщение от offenmeier Посмотреть сообщение
... а вообще в любом случае pack/unpack, чтобы ранее введённая дата сохранялась для текущего пользователя. best practice
Ну тогда в случае вызова класса из кода это работать не будет. Дату (там вообще говоря, др поле, но это не важно, будем считать для простоты, что это дата) я и так сохраняю в pack и восстанавливаю в unpack(). Точно так же сохраняется и восстанавливается queryRun. Так вот, если вызывать из кода этот класс:

X++:
AClass aClass = new AClass();

aClass.parmTransDate( transDate );

aClass.run();
То указанная дата не пропихнется в query, ктстати, тут тогда еще и query вообще не создаться.
Старый 20.10.2011, 10:33   #4  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Вообщем, getFromDialog() тоже не подойдет, потому что не факт, что класс будет вызываться вручную, а не из кода. К тому же я его делаю под пакетник, там вроде тоже getFromDialog не работает.
Я правильно понял, что класс может вызываться из кода, с установкой даты через parm-метод?

Тогда почему бы не создать метод, типа:
X++:
protected void updateQuery()
{
    QueryBuildDataSource    qbds;
    QueryBuildRange              qbr;
    ;

    if (! queryRun)
    {
        this.initQuery();
    }

    qbds = queryRun.query().dataSourceTable(tablenum(<>));
    qbr = SysQuery::findOrCreateRange(qbds, fieldnum(<>, <>));
    qbr.value(queryValue(<>));
}
и не вызывать его в run() ?
За это сообщение автора поблагодарили: Eldar9x (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
queryRun метод get SHiSHok DAX: Программирование 6 08.07.2011 16:46
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 04.04.2009 22:05
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 31.03.2009 06:06
OZKA's DAX Journal: Join между временной и постоянной таблицей через QueryRun. Blog bot DAX Blogs 12 14.01.2009 17:34
queryRun в рамках RunBaseBatch Smith DAX: Программирование 6 26.04.2005 11:03
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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