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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.08.2010, 13:02   #1  
raniel is offline
raniel
Участник
Аватар для raniel
 
241 / 11 (1) +
Регистрация: 20.10.2006
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Стоп! Откуда три запроса? executeQuery() какого DataSource вы перекрываете?
Должен быть один текст запроса, полученный по первому (верхнему) DataSource. В тексте запроса должны быть видны все подчинйнные таблицы и связи между ними.

Попробуйте вот так:
X++:
info(this.Query().DataSourceName(this.name()).toString());
ну три потомучто я написал:
info(this.Query().DataSourceNo(1).toString());
info(this.Query().DataSourceNo(2).toString());
info(this.Query().DataSourceNo(3).toString());

чтоб всё увидеть.

а при info(this.Query().DataSourceName(this.name()).toString()); выходит

Ошибка:
Ошибка времени выполнения: QueryBuildDataSource Объект не инициализирован.

Трассировка стека

(C)\Classes\QueryBuildDataSource\toString
(C)\Forms\ProdRouteOprOverview\Data Sources\ProdRoute\Methods\init - line 68
Старый 12.08.2010, 13:14   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,445 / 1781 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от raniel Посмотреть сообщение
а при info(this.Query().DataSourceName(this.name()).toString()); выходит Ошибка
А зачем вы в написали это в методе init()? Договаривались же вроде в конце метода executeQuery().
Старый 12.08.2010, 13:26   #3  
raniel is offline
raniel
Участник
Аватар для raniel
 
241 / 11 (1) +
Регистрация: 20.10.2006
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А зачем вы в написали это в методе init()? Договаривались же вроде в конце метода executeQuery().
Там тоже так же ругается... а по трём пред идущим info вот что выходит
Сообщение (13:31:07)
SELECT * FROM ProdRoute ORDER BY ProdRoute.FromDate ASC, ProdRoute.FromTime ASC WHERE ((NOT (Stopped = 1)))
SELECT * FROM ProdTable WHERE ProdRoute.ProdId = ProdTable.ProdId AND ((ProdStatus>=2 AND ProdStatus<=4))
SELECT * FROM RouteOprTable WHERE ProdRoute.OprId = RouteOprTable.OprId
Старый 12.08.2010, 13:31   #4  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от raniel Посмотреть сообщение
Там тоже так же ругается... а по трём пред идущим info вот что выходит
Сообщение (13:31:07)
SELECT * FROM ProdRoute ORDER BY ProdRoute.FromDate ASC, ProdRoute.FromTime ASC WHERE ((NOT (Stopped = 1)))
SELECT * FROM ProdTable WHERE ProdRoute.ProdId = ProdTable.ProdId AND ((ProdStatus>=2 AND ProdStatus<=4))
SELECT * FROM RouteOprTable WHERE ProdRoute.OprId = RouteOprTable.OprId
Судя по первому у Вас не джойнятся таблицы между собой. В инфо по первому дата соурсу должен быть целиковый запрос со всеми джойнами.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: raniel (1).
Старый 12.08.2010, 13:44   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,445 / 1781 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от lev Посмотреть сообщение
Судя по первому у Вас не джойнятся таблицы между собой. В инфо по первому дата соурсу должен быть целиковый запрос со всеми джойнами.
Именно!

Но меня ещё всё-таки волнует чистота эксперимента. Попробуйте запустить ещё такой тестовый джоб:
X++:
static void JobTestQueryProdRouteOprOverview2(Args _args)
{
    Query Query = new Query(querystr(ProdRouteOprOverview2));
    ;
    
    info(Query.dataSourceNo(1).toString());
}
Старый 12.08.2010, 13:59   #6  
raniel is offline
raniel
Участник
Аватар для raniel
 
241 / 11 (1) +
Регистрация: 20.10.2006
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Именно!

Но меня ещё всё-таки волнует чистота эксперимента. Попробуйте запустить ещё такой тестовый джоб:
X++:
static void JobTestQueryProdRouteOprOverview2(Args _args)
{
    Query Query = new Query(querystr(ProdRouteOprOverview2));
    ;
    
    info(Query.dataSourceNo(1).toString());
}
Хм сделал ... результат такой же:
Цитата:
Информация:
SELECT * FROM ProdRoute ORDER BY ProdRoute.FromDate ASC, ProdRoute.FromTime ASC
а почему так?
Все связи в Query я прописал через AOT
Кстати вот убрал свою ветку в запросе и результат стал вот таким:
Цитата:
Информация:
SELECT * FROM ProdRoute ORDER BY ProdRoute.FromDate ASC, ProdRoute.FromTime ASC EXISTS JOIN * FROM ProdTable WHERE ProdRoute.ProdId = ProdTable.ProdId
вот как выглядил Кверик до моих изменений(там как было первый и как стало второй):
Нажмите на изображение для увеличения
Название: AOT2.jpg
Просмотров: 269
Размер:	68.4 Кб
ID:	6014
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
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, время: 03:31.