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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.08.2010, 11:21   #1  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
887 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от raniel Посмотреть сообщение
Как понимаю в первом случае, когда я на таблицу ProdRoute накладываю Ranges, то на вторую такуюже таблицу оно не накладывается. Как мне это обойти? Может есть возможность наложить на обе одноимённые таблицы условие?
А к какому датасорсу накладываете Range ? Есть подозрение, что он получен чем-то типа такой конструкции :
X++:
datasource = query.datasourceTable(< >)
datasourceTable() имеет у себя два параметра - код таблицы(обязательный) и номер экземпляра такой таблицы в дереве запроса (опционален, по умолчанию = 1).
Т.е. обращаетесь и накладываете фильтр только на первый экземпляр.
Чтобы наложить Range на второй экземпляр - инициализируйте доп.датасорс с явным указанием номера экземпляра, равным двум, и уже на него накладывайте такой же Range
__________________
Мы летаем, кружимся, нагоняем ужасы ...
За это сообщение автора поблагодарили: raniel (1).
Старый 12.08.2010, 12:09   #2  
raniel is offline
raniel
Участник
Аватар для raniel
 
241 / 11 (1) +
Регистрация: 20.10.2006
Примерно так выглядит код:
Цитата:
void init()
{

super();

this.query(new Query(querystr(ProdRouteOprOverview2)));

criteriaTaskGroupId = this.query().dataSourceTable(tablenum(ProdRoute)).addRange(fieldnum(ProdRoute,TaskGroupId));
criteriaWrkCtrId = this.query().dataSourceTable(tablenum(ProdRoute)).addRange(fieldnum(ProdRoute,WrkCtrId));
criteriaOprId = this.query().dataSourceTable(tablenum(ProdRoute)).addRange(fieldnum(ProdRoute,OprId));

criteriaProdStatus = this.query().dataSourceTable(tablenum(ProdTable)).addRange(fieldnum(ProdTable,ProdStatus));

criteriaOprName = this.query().dataSourceTable(tablenum(ProdTable)).addRange(fieldnum(ProdTable,Name));
criteriaExpired = this.query().dataSourceTable(tablenum(ProdRoute)).addRange(fieldnum(ProdRoute,ToDate));


criteriaRouteOprName = this.query().dataSourceTable(tablenum(RouteOprTable)).addRange(fieldnum(RouteOprTable,Name));
...
После в методе executeQuery уже передаю значения...
Цитата:
void executeQuery()
{
if (ctrlLockTaskGroup.value())
criteriaTaskGroupId.value(queryValue(ctrlTaskGroupId.text()));
else
criteriaTaskGroupId.value(SysQuery::valueUnlimited());

if (ctrlLockOprId.value())
criteriaOprId.value(queryValue(ctrlOprId.text()));
else
criteriaOprId.value(SysQuery::valueUnlimited());
...
Старый 12.08.2010, 12:45   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от raniel Посмотреть сообщение
Примерно так выглядит код:
X++:
void init()
{

super();

this.query(new Query(querystr(ProdRouteOprOverview2)));
Не, ни в коем случае не делаейте new Query.
вы же напрочь убиваете весь механизм dynalink.

понятно, что сейчас вы вашу форму не вызываете из других.
но это не значит, что вы не захотите открыть вашу форму из другого места. А dynalink у вас и не работает.
__________________
полезное на axForum, github, vk, coub.
Старый 12.08.2010, 12:50   #4  
raniel is offline
raniel
Участник
Аватар для raniel
 
241 / 11 (1) +
Регистрация: 20.10.2006
Цитата:
Сообщение от mazzy Посмотреть сообщение
Не, ни в коем случае не делаейте new Query.
вы же напрочь убиваете весь механизм dynalink.

понятно, что сейчас вы вашу форму не вызываете из других.
но это не значит, что вы не захотите открыть вашу форму из другого места. А dynalink у вас и не работает.
Это так было.....изначально так было написано до меня....моя задача добавить связь с другой таблицей...чтоб на форме можно было бы фильтровать значения...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
jinx: Dynamics AX &ndash; Query-Ranges und Filtereinstellungen des Benutzers Blog bot DAX auf Deutsch 0 04.02.2010 00:05
Dynamics AX Geek: Using query() Blog bot DAX Blogs 0 04.05.2009 14:05
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
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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