foreach ($grcSelectPrimaries as $alias => $def) { // for grc filter $grcDataPrimaryValues['=' . $def][] = $row[$alias]; // for concat $grc_primary_string .= (string) $row[$alias] . '/'; } // save original data indexes for grc values if (!isset($grcDataPrimaryPointers[$grc_primary_string])) { $grcDataPrimaryPointers[$grc_primary_string] = array(); } $grcDataPrimaryPointers[$grc_primary_string][] = count($data) - 1; } $grcDataPrimaryValues = array_map('array_unique', $grcDataPrimaryValues); // </editor-fold> if (empty($settings['limit'])) { $arResult["NAV_STRING"] = $result->GetPageNavString('', is_set($arParams['NAV_TEMPLATE']) ? $arParams['NAV_TEMPLATE'] : 'arrows'); $arResult["NAV_PARAMS"] = $result->GetNavParams(); $arResult["NAV_NUM"] = $result->NavNum; } // <editor-fold defaultstate="collapsed" desc="retrieve total counts"> $totalSelect = $select; $totalColumns = array(); foreach ($viewColumns as $num => $view) { // total's fields are the same as percentable fields // they are also all numerics if (CReport::isColumnTotalCountable($view, $arParams['REPORT_HELPER_CLASS'])) { // exclude from select all except those $totalColumns[$view['resultName']] = true; } } // save only totalCountable visible fields