У меня следующая ситуация: Мне нужно присоединиться к VendInvoiceJour.InvoiceAccount <- VendTable.AccountNum и взять VendTable.Vendgroup. Во всех случаях (запросы или даже представления) Dynamics Ax объединяет таблицы VendInvoiceJour.OrderAccount <- VendTable.AccountNum not VendInvoiceJour.InvoiceAccount <- VendTable.AccountNum. Я пытаюсь использовать этот вид запроса: </p>
qBdSVendJour = element.query().dataSourceTable(tablenum(VendInvoiceJour)); qBdSVendTbl = qBdSVendJour.addDataSource(tablenum(VendTable)); qBdSVendTbl.relations(true); qBdSVendTbl.joinMode(JoinMOde::InnerJoin); qBdSVendTbl.fetchMode(QueryFetchMode::One2One); qBdSVendTbl.addLink( FieldNum(VendInvoiceJour,InvoiceAccount) ,FieldNum(VendTable,AccountNum) ); //(Dynamics ax automatically corrects InvoiceAccount to orderaccount //in reports if trying this link in morphx)
Если удалить строку:
*qBdSVendTbl.relations(true);*
тогда вам не нужно будет добавлять:
*BdSVendJour.clearDynalink();*
Чтобы быть уверенным, что фактический запрос является ожидаемым, выведите следующее:
*qBdSVendJour.toString();*
Я полагаю, что утверждение qBdSVendTbl.relations (true) заставит AX оценить определенные отношения в рассматриваемых таблицах и использовать их независимо от этого.
qBdSVendJour.clearDynalink() добьется цели.
qBdSVendJour.clearDynalink()