Показать сообщение отдельно
Старый 06.08.2015, 10:59   #1  
Start is offline
Start
Участник
 
39 / 9 (1) +
Регистрация: 21.07.2015
Адрес: Москва
Сортировка Query
Если надо отсортировать запрос сначала по полям третей таблицы в датасорсе, а потом только второй, то как это сделать?

1. qbdsInvent = query.addDataSource(tablenum(InventTable));

qbds = qbdsInvent.addDataSource(tablenum(InventHistoryChange));
qbds.relations(true);
qbds.fetchMode(QueryFetchMode::One2One);

qbds = qbds.addDataSource(tablenum(InventDim));
qbds.relations(true);
qbds.fetchMode(QueryFetchMode::One2One);

qbdsInvent.addSortField(fieldNum(InventTable,ItemId));
qbds.addSortField(fieldNum(InventDim,InventSiteId));
qbds.addSortField(fieldNum(InventHistoryChange, InventChangeDat));

"неправильное поле сортировки"

2. qbdsInvent = query.addDataSource(tablenum(InventTable));

qbds = qbdsInvent.addDataSource(tablenum(InventHistoryChange));
qbds.relations(true);
qbds.fetchMode(QueryFetchMode::One2One);

qbdsInventDim = qbds.addDataSource(tablenum(InventDim));
qbdsInventDim.relations(true);
qbdsInventDim.fetchMode(QueryFetchMode::One2One);

qbdsInvent.addSortField(fieldNum(InventTable,ItemId));
qbdsInventDim.addSortField(fieldNum(InventDim,InventSiteId));
qbds.addSortField(fieldNum(InventHistoryChange, InventChangeDat));

а так сортирует сначала по fieldNum(InventHistoryChange, InventChangeDat вместо желаемого fieldNum(InventDim,InventSiteId) сначала и fieldNum(InventHistoryChange, InventChangeDat) потом.