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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.03.2016, 17:46   #1  
Alucardkds is offline
Alucardkds
Участник
 
8 / 10 (1) +
Регистрация: 04.10.2014
1. В QueryRun всё в порядке.
2. Query у меня пока никак не сохраняется этими методами, не дошёл до этого.
Пункты 3. и 4.:
Изменил немного код и всё пошло как надо:
X++:
void initQuery()
{
    query query1 = new query();
   QueryBuildDataSource    qbds1, qbds2;
    ;

    qbds1= query1.addDataSource(tableNum(Table1));
    qbds1.firstfast(false);
    qbds2= qbds1.addDataSource(tablenum(Table2));
    qbds2.firstFast(false);

    //Убрал объединение
    //qbds2.addLink(fieldnum(Table1, DepartmentId), fieldnum(Table2, DepartmentId))

    // Явное указание полей, которые будут отображены в форме диалога
    qbds1.addRange(fieldnum(Table1, Field1));
    qbds2.addRange(fieldnum(Table2, Field1));

    queryrun1 = new queryRun(query1);
}
Спасибо огромное. (:
Старый 19.01.2017, 12:54   #2  
AR® is offline
AR®
Участник
 
30 / 15 (1) ++
Регистрация: 07.09.2012
Всё это хорошо, пока в объемлющем qbds (qbds1 в вышеприведённом примере) нет группировок.

Если же их добавить, то вложенная таблица (qbds2 / Table2 в вышеприведённом примере) просто перестанет выбираться: при вызове table2 = queryrun1.get(tableNum(Table2)) не будет заполняться table2.

Я знаю один выход из такого положения, но он слишком антилиберальный.
Если кто-то знает другие, буду благодарен за описание в данной теме.
Старый 19.01.2017, 13:12   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AR® Посмотреть сообщение
Всё это хорошо, пока в объемлющем qbds (qbds1 в вышеприведённом примере) нет группировок.

Если же их добавить, то вложенная таблица (qbds2 / Table2 в вышеприведённом примере) просто перестанет выбираться.
Это потому что в таком случае произойдёт сначала соединение, а уже потом группировка. И если никакие поля вложенной таблицы не участвуют в группировке, то они и не выберутся.

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

Проясните запрос

Последний раз редактировалось S.Kuskov; 19.01.2017 в 13:15.
Старый 19.01.2017, 13:24   #4  
AR® is offline
AR®
Участник
 
30 / 15 (1) ++
Регистрация: 07.09.2012
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
нужно использовать промежуточный View для группировки и уже этот View соединять с вложенной таблицей.
В приведённой теме речь о select'ах в коде - там это так.

А с qbds в query ничего не получится. Поля в разделе Group By в дизайне вьюхи будут проигнорированы, а qbds.addGroupByField(viewName, viewField) приведёт к тому, что вложенная таблица не будет выбираться.

Так в Ax2009.
Подчеркну, что речь идёт о несвязанных таблицах (ни через их Relation, ни через qbds2.addLink() ) , когда надо поучить декартово произведение двух выборок "всё на всё".

Последний раз редактировалось AR®; 19.01.2017 в 13:31.
Старый 19.01.2017, 13:31   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AR® Посмотреть сообщение
с qbds в query ничего не получится. Поля в разделе Group By в дизайне вьюхи будут проигнорированы
Почему вы так решили? Вы пробовали создать представление на основании запроса, содержащего группировку?

Цитата:
Сообщение от AR® Посмотреть сообщение
Подчеркну, что речь идёт о несвязанных таблицах (ни через их Relation, ни через qbds2.addLink() ) , когда надо поучить декартово произведение двух выборок "всё на всё".
Да какая разница. Наличие или отсутствие relation не меняет принципа соединения таблиц, а влияет только на последующую фильтрацию результата соединения.

Последний раз редактировалось S.Kuskov; 19.01.2017 в 13:35.
Старый 19.01.2017, 13:39   #6  
AR® is offline
AR®
Участник
 
30 / 15 (1) ++
Регистрация: 07.09.2012
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Почему вы так решили? Вы пробовали создать представление на основании запроса, содержащего группировку?
Я попробовал создать view на постоянной таблице и добавил требуемые поля (2 штуки) в Group By, они же оставлены как собственно поля view.
Группировки нет.
Старый 19.01.2017, 14:06   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AR® Посмотреть сообщение
Я попробовал создать view на постоянной таблице и добавил требуемые поля (2 штуки) в Group By, они же оставлены как собственно поля view.
Группировки нет.
https://msdn.microsoft.com/en-us/library/bb314551.aspx
Цитата:
Do not specify a field in the Group By element. A view does not use the field information in the Group By element.

Note: If you want to group the records in a view, replace the view data source with a query that has the specified group by information.
https://msdn.microsoft.com/en-us/lib...(v=ax.50).aspx
https://msdn.microsoft.com/en-us/lib...(v=ax.50).aspx
За это сообщение автора поблагодарили: AR® (1).
Теги
query, queryrun

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxhints: Query datasource FirstOnly property Blog bot DAX Blogs 0 22.03.2016 09:11
emeadaxsupport: Microsoft Dynamics AX general performance analysis scripts page 5 Blog bot DAX Blogs 0 01.09.2014 14:11
AIF: OData Query Service Blog bot DAX Blogs 0 24.08.2011 09:11
jinx: Dynamics AX – Query-Ranges und Filtereinstellungen des Benutzers Blog bot DAX auf Deutsch 0 04.02.2010 00:05

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

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

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