04.04.2016, 12:28 | #1 |
Участник
|
Добавление таблицы в фильтр (1:n) (AX 2009)
Добрый день!
Такой вот вопрос - есть таблица, допустим CustInvoiceTrans. В ней есть несколько полей с одинаковым Extended data type - SalesId и OriginalSalesId. И мне хотельсь бы подсоеденить таблицу со связью по OriginalSalesId. Можно ли такое соорудить? |
|
04.04.2016, 12:56 | #2 |
Участник
|
relations(false)
clearLinks addLink |
|
04.04.2016, 13:45 | #3 |
Участник
|
Это работает для одной формы или отчета, а вот можно ли сделать так, чтобы в любой форме, где есть таблица CustInvoiceTrans я мог бы в фильтре (пользовательскай фильтр) добавить талицу SalesTable соединенную по полю SalesId (CustInvoiceTrans.SalesId == SalesTable.SalesId ) и еще одну таблицу SalesTable (CustInvoiceTrans.OrigSalesId == SalesTable.SalesId )
|
|
04.04.2016, 14:14 | #4 |
Участник
|
А в стандарте разве не так?
У меня видны два пункта ссылающиеся на Заказ продажу. Я так думаю это как раз из-за того что там две связи. |
|
04.04.2016, 14:37 | #5 |
Участник
|
Да, два варианта соединения, но все они соединяются по CustInvoiceTrans.SalesId
|
|
04.04.2016, 15:06 | #6 |
Участник
|
Сейчас посмотрел в своё приложение. У нас там заплатка в классе SysQuery в методах packDataSource/unpackDataSource вместе с queryBuildDataSource.table() пакуется и восстанавливается queryBuildDataSource.label(). И вспоминается мне, что это как раз из-за похожей проблемы.
X++: // Pack table-Id dataSourcePack = conins(dataSourcePack, #packTableIdPos, [queryBuildDataSource.table()]); dataSourcePack = conins(dataSourcePack, #packLabelPos, [queryBuildDataSource.label()]); // <<-- X++: str Label; // KSM ... // Unpack tables ... [relatedTableId] = conpeek(pack, #packTableIdPos); dictTable = new DictTable(relatedTableId); if (dictTable) { childDataSource = _queryBuildDataSource.addDataSource(relatedTableId); // -->> [Label] = conpeek(pack, #packLabelPos); childDataSource.label(Label); // <<-- childDataSource.joinMode(JoinMode::ExistsJoin); childDataSource.fetchMode(QueryFetchMode::One2One); SysQuery::unpackDataSource(_query, pack, childDataSource, _origRangeMap, _childDataSourceMap, false, _unpackOnlyOpenRanges, dataSourceNo + i); } ... Последний раз редактировалось S.Kuskov; 04.04.2016 в 15:13. |
|
|
За это сообщение автора поблагодарили: Ruff (2), Logger (3). |
|
|