![]() |
#15 |
Участник
|
Если джойнить 2 таблицы - всё замечательно, когда пытаюсь приджойнить третью - qbds валится в null.
X++: Queryrun main_query(boolean _count_query = false) { Query query = new Query(); QueryBuildDataSource qbds; ; qbds = query.addDataSource(tablenum(VendInvoiceTrans)); qbds.addSortField(fieldnum(VendInvoiceTrans,ItemId)); qbds.addSortField(fieldnum(VendInvoiceTrans,InternalSp)); qbds.addSelectionField(fieldnum(VendInvoiceTrans,Qty), SelectionField::Sum); qbds.orderMode(OrderMode::GroupBy); qbds = qbds.addDataSource(tablenum(VendSpListTrans)); qbds.addLink(fieldnum(VendSpListTrans,InternalSp),fieldnum(VendInvoiceTrans,InternalSp)); qbds.joinMode(JoinMode::InnerJoin); qbds = query.dataSourceTable(tableNum(VendSpListJour)); qbds.addLink(fieldnum(VendSpListTrans,InternalSp),fieldnum(VendSpListJour,InternalSP)); qbds.joinMode(JoinMode::InnerJoin); if (datefromstr && datetostr) { qbds.addRange(fieldnum(VendSpListJour,SpDate)).value(SysQuery::range(datefrom.value(),dateto.value())); } if (vendaccountstr) { qbds.addRange(fieldnum(VendSpListJour,OrderAccount)).value(SysQuery::value(vendaccountstr)); } //если введён регистранионный номер договора if (rcontractaccountstr) { qbds.addRange(fieldnum(VendSpListJour, RcontractAccount)).value(SysQuery::value(rcontractaccount.value())); } //если введён Владелец if (emplidstr) { qbds.addRange(fieldnum(VendSpListJour, Emplid)).value(SysQuery::value(emplid.value())); } switch(spclosedstr) { case (AllOpenPosted::All): qbds.addRange(fieldnum(VendSpListJour,SpClosed)); break; case (AllOpenPosted::Open): qbds.addRange(fieldnum(VendSpListJour,SpClosed)).value('1'); break; case (AllOpenPosted::Posted): qbds.addRange(fieldnum(VendSpListJour,SpClosed)).value('0'); break; default: break; } qbds = query.dataSourceTable(tablenum(VendInvoiceTrans)); if (_count_query) { qbds.addSelectionField(fieldnum(VendinvoiceTrans,RecId), SelectionField::Count); } qbds = query.dataSourceTable(tablenum(VendSpListTrans)); return (new QueryRun(query)); } qbds.addLink(fieldnum(VendSpListTrans,InternalSp),fieldnum(VendSpListJour,InternalSP)); Если заккоментировать весь кусок от qbds = query.dataSourceTable(tableNum(VendSpListJour)); и до конца switch - всё замечательно работает. Уважаемый maldini, не знаете, в чём причина? |
|
Теги |
group by, query, группировка |
|
|