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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.03.2003, 16:51   #1  
PlasticinE is offline
PlasticinE
Смотрящий поверх деревьев (Варварский отморозок)
 
243 / 10 (1) +
Регистрация: 06.12.2001
модификация Query в диалоге
Есть класс - дальний потомок RunBase
Соответственно, у него есть dialog().
В нем модифицируется исходный Queryrun().Query(). В частности добавляются датасорсы и рэнджи в них.

При повторном открытии они добавляются еще раз. И еще раз, и еще раз с каждым открытием.

Можно сказать resetQueryRun(), но тогда убиваются предыдущие условия в рэнджах....

На этом поток мысли обрывается...
__________________
It's a dirty job, but someone's got to do it. So?
Старый 17.03.2003, 17:06   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
В частности добавляются датасорсы и рэнджи в них.

При повторном открытии они добавляются еще раз. И еще раз, и еще раз с каждым открытием.

Можно сказать resetQueryRun(), но тогда убиваются предыдущие условия в рэнджах....
Может я не до конца понял проблему, но:

как я понимаю ты добавляешь рэнжи примерно так:

dataSourceNo(n).addRange(fieldNum(Table,Filed)).value(Value);

Это так ?

Почему бы их не убирать вот так:

dataSourceNo(n).clearRange(fieldNum(Table,Filed));

Те, что насоздавал, те и убивай - все остальное останется. Или я что-то недопонял ?
Старый 17.03.2003, 17:13   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Хотя, наверное не поможет Как я понял, в RunBase слишком много на этом завязано.
Старый 17.03.2003, 17:16   #4  
PlasticinE is offline
PlasticinE
Смотрящий поверх деревьев (Варварский отморозок)
 
243 / 10 (1) +
Регистрация: 06.12.2001
Цитата:
Изначально опубликовано Андре


Может я не до конца понял проблему, но:

как я понимаю ты добавляешь рэнжи примерно так:

dataSourceNo(n).addRange(fieldNum(Table,Filed)).value(Value);

Это так ?

Почему бы их не убирать вот так:

dataSourceNo(n).clearRange(fieldNum(Table,Filed));

Те, что насоздавал, те и убивай - все остальное останется. Или я что-то недопонял ?
Как убивать я знаю

все дело в xSysLastValue которая загружает при новом вызове runBase ранее сохраненный в нем query. То есть в нем уже есть исходные датасорсы, а я добавляю еще. Соотв. они удваиваются, утраиваются и т.д....

Можно конечно, проверять на существование в query этих датасорсов и не создавать новых... Но хочется шоб само
__________________
It's a dirty job, but someone's got to do it. So?
Старый 17.03.2003, 17:41   #5  
PlasticinE is offline
PlasticinE
Смотрящий поверх деревьев (Варварский отморозок)
 
243 / 10 (1) +
Регистрация: 06.12.2001
А!

Все фигня!

Надо просто делать все не в диалоге а в initQuery
__________________
It's a dirty job, but someone's got to do it. So?
Старый 18.03.2003, 10:07   #6  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
...а лучше, наверное, в initParmDefault
насколько я понял вызов этого метода происходит только один раз = если не нашлось значений в SysLastValue.
__________________
С уважением, Вячеслав.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX: QueryRun and Query Objects - Binding operation failed to allocate buffer space Blog bot DAX Blogs 0 03.04.2009 08:05
palleagermark: Sample union query from AX 2009 Blog bot DAX Blogs 0 11.07.2008 20:05
Dynamics AX Geek: Using query() Blog bot DAX Blogs 0 28.10.2006 16:40
Проблема с составлением Query axaLearner DAX: Программирование 10 01.12.2005 15:00
Программная модификация query ZSV DAX: Программирование 4 22.02.2005 20:08

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

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

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