13.03.2009, 16:00 | #1 |
NavAx
|
relatedField и field у QueryBuildLink
Вот нашел в Ax4.0 интересный глючок, и, как мне кажется, этого в 3ке не было, впрочем, меня поправят если что...
Если у какого-либо подчиненного QueryBuildDataSource в сложном запросе попросить его link (QueryBuildLink), а у того спросить relatedField(Table) и field(Table) (поле по которому связаны соотв. родительский и сам этот текущий datasource), то в качестве related (родительского поля/таблицы) будет возвращен текущий (т.е. подчиненный), а в качестве исходного - родительский. В частности, это может служить объяснением, почему везде в SQL запросах (или их визуализации, т.е. при отладке, скажем, если посмотреть на FormBuildDatasource ) в условиях связки таблиц переставлены местами поля связок. У меня Ax 4.0 клиент SP0 kernel 4.0.2163.0 на БД MS SQL Server версию не скажу . См. job. X++: static void testQueryBuildLink(Args _args) { Query q1; QueryBuildDataSource qbds1, qbds2; QueryBuildLink qbdl; container qrPacked, RangePacked; ; q1 = new Query(); qbds1 = q1.addDataSource(tablenum(InventTrans)); qbds2 = qbds1.addDataSource(tablenum(InventTable)); qbds2.relations(false); qbdl = qbds2.addLink(fieldnum(InventTrans, ItemId), fieldnum(InventTable, ItemId)); info(strfmt("Связь - %1 %2", tableid2name(qbdl.table()), fieldid2name(qbdl.table(), qbdl.field()))); info(strfmt("к related %1 %2", tableid2name(qbdl.relatedTable()), fieldid2name(qbdl.Relatedtable(), qbdl.relatedField()))); }
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
Теги |
баг, ошибка |
|
|