Что-то типа этого:
PHP код:
void initQuery()
{
query query = new query();
QueryBuildDataSource queryDataSource1,queryDataSource2,queryDataSource3;
QueryBuildRange QRange1, QRange2, QRange3, QRange4, QRange5;
int postedQty, received, deducted, registered, picked;
;
queryDataSource1 = query.addDataSource( tablenum( inventTable ));
queryDataSource2 = queryDataSource1.addDataSource( tablenum( inventSum ));
queryDataSource3 = queryDataSource2.addDataSource( tablenum( inventDim ));
queryDataSource2.addLink(fieldNum(InventTable, ItemId), fieldNum(InventSum, ItemId));
queryDataSource3.addLink(fieldNum(InventSum, InventDimId), fieldNum(inventDim, InventDimId));
queryDataSource1.addSortField( fieldnum( inventTable, ItemId ));
queryDataSource1.addSortField( fieldnum( inventTable, ItemName ));
queryDataSource1.addSortField( fieldnum( inventTable, ItemGroupId ));
queryDataSource2.addSortField( fieldnum( inventSum, InventDimId ));
queryDataSource1.orderMode(OrderMode::GroupBy);
QRange1 = queryDataSource2.addRange(fieldnum( inventSum, ItemId ));
QRange2 = queryDataSource1.addRange(fieldnum( inventTable, ItemGroupId ));
QRange3 = queryDataSource1.addRange(fieldnum( inventTable, GroupTopId ));
QRange4 = queryDataSource1.addRange(fieldnum( inventTable, GroupLevelId ));
QRange5 = queryDataSource3.addRange(fieldnum( inventDim, InventLocationId ));
queryDataSource1.addSelectionField(fieldnum( inventTable, ItemId ));
queryDataSource1.addSelectionField(fieldnum( inventTable, ItemName ));
queryDataSource1.addSelectionField(fieldnum( inventTable, ItemGroupId ));
queryDataSource1.addSelectionField(fieldnum( inventTable, GroupTopId ));
queryDataSource1.addSelectionField(fieldnum( inventTable, GroupLevelId ));
queryDataSource2.addSelectionField(fieldnum( inventSum, InventDimId ));
queryDataSource2.addSelectionField(fieldnum( inventSum, postedQty ), selectionField::Sum);
queryDataSource2.addSelectionField(fieldnum( inventSum, received ), selectionField::Sum);
queryDataSource2.addSelectionField(fieldnum( inventSum, deducted ), selectionField::Sum);
queryDataSource2.addSelectionField(fieldnum( inventSum, registered ), selectionField::Sum);
queryDataSource2.addSelectionField(fieldnum( inventSum, picked ), selectionField::Sum);
queryrun = new sysqueryrun(query);
queryRun.origQueryPack(query.pack(false));
}