|
|
|
|
#1 |
|
Участник
|
Цитата:
Сообщение от maldini
Странно! Каким способом ты получаешь данные из запроса.
Вот такой пример работает без проблем X++: Queryrun main_query(boolean _count_query = false) { VendInvoiceJour VendInvoiceJour; QueryRun QueryRun; Query query = new Query(); QueryBuildDataSource qbds; QueryBuildRange qbr; ; qbds = query.addDataSource(tablenum(VendInvoiceJour)); qbds.addSortField(fieldnum(VendInvoiceJour,purchId)); qbds.addSelectionField(fieldnum(VendInvoiceJour,Qty), SelectionField::Sum); qbds.orderMode(OrderMode::GroupBy); qbds = qbds.addDataSource(tablenum(VendInvoiceTrans)); qbds.addLink(fieldnum(VendInvoiceJour,purchId),fieldnum(VendInvoiceTrans,purchId)); qbds.joinMode(JoinMode::InnerJoin); qbds = query.dataSourceTable(tableNum(VendInvoiceJour)); QueryRun = new QueryRun(query); while (queryRun.next()) { VendInvoiceJour = QueryRun.get(tablenum(VendInvoiceJour)); info(strFmt("%1 %2",VendInvoiceJour.PurchId,VendInvoiceJour.Qty); } } Как всё-таки правильно? У меня связи таблиц немного другие ListJour => ListTrans - один ко многим ListTrans => VendInvoiceTrans - много ко многим. Может быть из-за этого проблема? |
|
|
|
|
#2 |
|
Участник
|
Цитата:
X++: qdbs = query.dataSourceTable(tableNum(VendInvoiceJour));X++: qbds.joinMode(JoinMode::InnerJoin); Последний раз редактировалось maldini; 24.05.2013 в 17:12. |
|
|
|
|
#3 |
|
Участник
|
Цитата:
Сообщение от maldini
QDBS тут совсем не причем. Всеравно все от query идет. Просто в вашем случае можно в любое место добавить какое либо условия, а в моем придется в переменную qdbs предварительно получить datasource того запроса куда буду добовлять фильтр, вот так
X++: qdbs = query.dataSourceTable(tableNum(VendInvoiceJour));
|
|
|
|
|
#4 |
|
Участник
|
|
|
|
|
|
#5 |
|
Участник
|
Цитата:
X++: queryRun = this.main_query();
while(queryRun.next())
{
vendsp = queryRun.get(tablenum(VendSpListJour));
vendsplist = queryRun.get(tablenum(VendSpListTrans));
vendinvoice = queryRun.get(tablenum(VendInvoiceTrans)); |
|
|
|
|
#6 |
|
Участник
|
Цитата:
X++: void main_query(boolean _count_query = false) { VendInvoiceJour VendInvoiceJour; VendInvoiceTrans VendInvoiceTrans; QueryRun QueryRun; Query query = new Query(); QueryBuildDataSource qbds; QueryBuildRange qbr; ; qbds = query.addDataSource(tablenum(VendInvoiceJour)); qbds.addSortField(fieldnum(VendInvoiceJour,purchId)); qbds.addSelectionField(fieldnum(VendInvoiceJour,Qty), SelectionField::Sum); qbds.orderMode(OrderMode::GroupBy); qbds.addRange(fieldnum(VendInvoiceJour,purchId)).value('Номер закупки'); qbds = qbds.addDataSource(tablenum(VendInvoiceTrans)); qbds.addSortField(fieldnum(VendInvoiceTrans,purchId)); qbds.orderMode(OrderMode::GroupBy); qbds.addLink(fieldnum(VendInvoiceJour,purchId),fieldnum(VendInvoiceTrans,purchId)); QueryRun = new QueryRun(query); while (queryRun.next()) { VendInvoiceJour = QueryRun.get(tablenum(VendInvoiceJour)); VendInvoiceTrans = QueryRun.get(tablenum(VendInvoiceTrans)); info(strFmt("%1 %2",VendInvoiceJour.PurchId,VendInvoiceJour.Qty)); info(strFmt("%1",VendInvoiceTrans.PurchId)); } } Последний раз редактировалось maldini; 24.05.2013 в 17:44. |
|
|
|
|
#7 |
|
Участник
|
|
|
|
|
|
#8 |
|
Участник
|
|
|
|
|
|
#9 |
|
Участник
|
Цитата:
Скажите, пожалуйста, а каким образом их добавить в группировку? К какому Qbds их цеплять ? Сейчас опять запрос валится с ошибкой что Источник данных не входит в состав родительского источника данных. |
|
|
| Теги |
| group by, query, группировка |
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|