protected function resolveDrillDownDetailsData($report) { $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('reportResultsSubListPageSize', $report->getModuleClassName()); $dataProvider = ReportDataProviderFactory::makeForSummationDrillDown($report, $pageSize); $totalItems = intval($dataProvider->calculateTotalItemCount()); $dataProvider->getPagination()->setPageSize($totalItems); $reportToExportAdapter = ReportToExportAdapterFactory::createReportToExportAdapter($report, $dataProvider); $drillDownHeaderData = $reportToExportAdapter->getHeaderData(); $drillDownData = $reportToExportAdapter->getData(); $this->data[] = array_merge(array(null), $drillDownHeaderData); if (!empty($drillDownData)) { foreach ($drillDownData as $row) { $this->data[] = array_merge(array(null), $row); } } }
protected function getDataProvider(Report $report, $stickyKey, $runReport) { assert('is_string($stickyKey) || is_int($stickyKey)'); assert('is_bool($runReport)'); $getData = GetUtil::getData(); if (isset($getData['clearRuntimeFilters']) && $getData['clearRuntimeFilters']) { StickyReportUtil::clearDataByKey($stickyKey); } if (null != ($stickyData = StickyReportUtil::getDataByKey($stickyKey))) { StickyReportUtil::resolveStickyDataToReport($report, $stickyData); } $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('reportResultsListPageSize', get_class($this->getModule())); $dataProvider = ReportDataProviderFactory::makeByReport($report, $pageSize); if ($runReport) { $dataProvider->setRunReport($runReport); } return $dataProvider; }
public static function makeReportDataProviderAndResolveAttributeName($id, $pageSize, &$attributeName) { assert('is_int($pageSize)'); $savedReport = SavedReport::getById($id); $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport); foreach ($report->getDisplayAttributes() as $key => $displayAttribute) { if ($displayAttribute->getAttributeIndexOrDerivedType() == 'id') { $attributeName = ReportResultsRowData::resolveAttributeNameByKey($key); break; } } if ($attributeName == null) { $moduleClassName = $report->getModuleClassName(); $modelClassName = $moduleClassName::getPrimaryModelName(); $displayAttribute = new DisplayAttributeForReportForm($moduleClassName, $modelClassName, $report->getType()); $displayAttribute->attributeIndexOrDerivedType = 'id'; $report->addDisplayAttribute($displayAttribute); $attributeName = ReportResultsRowData::resolveAttributeNameByKey($key + 1); } return ReportDataProviderFactory::makeByReport($report, $pageSize); }
protected function getDataProviderForExport(Report $report, $stickyKey, $runReport) { assert('is_string($stickyKey) || is_int($stickyKey)'); assert('is_bool($runReport)'); if (null != ($stickyData = StickyReportUtil::getDataByKey($stickyKey))) { StickyReportUtil::resolveStickyDataToReport($report, $stickyData); } $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('reportResultsListPageSize', get_class($this->getModule())); $dataProvider = ReportDataProviderFactory::makeByReport($report, $pageSize); if (!$dataProvider instanceof MatrixReportDataProvider) { $totalItems = intval($dataProvider->calculateTotalItemCount()); $dataProvider->getPagination()->setPageSize($totalItems); } if ($runReport) { $dataProvider->setRunReport($runReport); } return $dataProvider; }