Hello!
I'm trying to sort my query by the summed field.
It seems like the query does sum the fields, but sorting is not applied.
Here is my code.
Query q; QueryRun qr; QueryBuildDataSource qbd; CustInvoiceTrans tt; int i = 0; q = new Query(); qbd = q.addDataSource(tableNum(CustInvoiceTrans)); qbd.addGroupByField(fieldNum(CustInvoiceTrans, ItemId)); qbd.addSelectionField(fieldNum(CustInvoiceTrans,Qty),SelectionField::Sum); qbd.addSortField(fieldNum(CustInvoiceTrans,Qty),SortOrder::Descending); qr = new QueryRun(q); //For testing the query while(qr.next()){ tt = qr.get(tableNum(CustInvoiceTrans)); info(tt.ItemId " - " int2str(tt.Qty)); i ; if(i > 5) break; }
I also tried using QueryBuildFieldList, but it was still unsuccessful in sorting the table.
Query q; QueryRun qr; QueryBuildDataSource qbd; QueryBuildFieldList qbfl; CustInvoiceTrans tt; int i = 0; q = new Query(); qbd = q.addDataSource(TableNum(CustInvoiceTrans)); qbfl = qbd.fields(); qbfl.addField(fieldNum(CustInvoiceTrans, ItemId)); qbfl.addField(fieldNum(CustInvoiceTrans, Qty), SelectionField::Sum); qbd.addGroupByField(fieldNum(CustInvoiceTrans, ItemId)); qbd.addSortField(fieldNum(CustInvoiceTrans, Qty), SortOrder::Descending); qr = new QueryRun(q); while(qr.next()){ tt = qr.get(tableNum(CustInvoiceTrans)); info(tt.ItemId " - " int2str(tt.Qty)); i ; if(i > 5) break; }