|
![]() |
#1 |
Участник
|
1. В методе queryRun() указан сформированный в initQuery() запрос?
2. В методах pack/unpack не выполняется сохранение/восстановление ранее выполненного запроса 3. Вы правильно определили условия объединения таблиц? Может их надо объединять не по DepartmentId? 4. Ну, и проверьте, какой же запрос реально выполняется X++: void printSheet1() { (...) ; //debug // псевдо-скрипт выполняемого запроса info(queryrun1.query().dataSourceNo(1).toString()); while (queryrun1.next()) { (...) } }
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Alucardkds (1). |
![]() |
#2 |
Участник
|
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); } |
|
![]() |
#3 |
Участник
|
Всё это хорошо, пока в объемлющем qbds (qbds1 в вышеприведённом примере) нет группировок.
Если же их добавить, то вложенная таблица (qbds2 / Table2 в вышеприведённом примере) просто перестанет выбираться: при вызове table2 = queryrun1.get(tableNum(Table2)) не будет заполняться table2. Я знаю один выход из такого положения, но он слишком антилиберальный. ![]() Если кто-то знает другие, буду благодарен за описание в данной теме. |
|
![]() |
#4 |
Участник
|
Цитата:
Если вы хотите получить запрос где таблица сначала группируется, а потом к результату группировки джойнится вложенная таблица, то нужно использовать промежуточный View для группировки и уже этот View соединять с вложенной таблицей. Проясните запрос Последний раз редактировалось S.Kuskov; 19.01.2017 в 13:15. |
|
![]() |
#5 |
Участник
|
Цитата:
А с qbds в query ничего не получится. Поля в разделе Group By в дизайне вьюхи будут проигнорированы, а qbds.addGroupByField(viewName, viewField) приведёт к тому, что вложенная таблица не будет выбираться. Так в Ax2009. Подчеркну, что речь идёт о несвязанных таблицах (ни через их Relation, ни через qbds2.addLink() ) , когда надо поучить декартово произведение двух выборок "всё на всё". Последний раз редактировалось AR®; 19.01.2017 в 13:31. |
|
![]() |
#6 |
Участник
|
Цитата:
Да какая разница. Наличие или отсутствие relation не меняет принципа соединения таблиц, а влияет только на последующую фильтрацию результата соединения. Последний раз редактировалось S.Kuskov; 19.01.2017 в 13:35. |
|
![]() |
#7 |
Участник
|
|
|
Теги |
query, queryrun |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|