![]() |
#5 |
Участник
|
X++: private server static container ountPrim(container _queryPack) { Query countQuery; QueryRun countQueryRun; QueryBuildDataSource qbds; QueryBuildFieldList qbfl; Common common; Integer counter; Integer loops; Integer tmxGroupNumber; Integer tmxDataSourceNumber; ; countQueryRun = new QueryRun(_queryPack); countQuery = countQueryRun.query(); tmxGroupNumber = countQuery.groupByFieldCount(); //<-- this guarantees number of groupings for (tmxDataSourceNumber = 1; tmxDataSourceNumber <= countQuery.dataSourceCount(); tmxDataSourceNumber++) { qbds = countQuery.dataSourceNo(tmxDataSourceNumber); qbds.update(false); //qbds.sortClear(); //tmxGroupNumber +=(qbds.orderMode()==orderMode::GroupBy); qbfl = qbds.fields(); qbfl.dynamic(false); qbfl.clearFieldList(); qbds.addSelectionField(fieldNum(Common,RecId),SelectionField::Count); } countQueryRun = new QueryRun(countQuery); while (countQueryRun.next()) { common = countQueryRun.getNo(1); counter += common.RecId; loops++; } //return [counter,loops]; return [counter,(tmxGroupNumber ? loops : counter)]; }
__________________
Felix nihil admirari Последний раз редактировалось wojzeh; 19.06.2014 в 01:06. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |