• Модуль: report
  • Путь к файлу: ~/bitrix/modules/report/lib/visualconstructor/helper/widget.php
  • Класс: BitrixReportVisualConstructorHelperWidget
  • Вызов: Widget::getCalculatedPerformedData
static function getCalculatedPerformedData($view, $widget)
{
	$result = [];
	$widget->loadAttribute('reports');

	$reports = $widget->getReports();
	$reportsCount = count($widget->getReports());
	if ($reportsCount > $view::MAX_RENDER_REPORT_COUNT)
	{
		$result['errors'][] = 'View with key:' . $view->getKey() . 'can't render this count(' . $reportsCount . ') of reports';
		return $result;
	}

	$handledReportData = array();
	foreach ($reports as $reportId => $report)
	{
		$reportDispatcher = new ReportDispatcher();
		$reportDispatcher->setReport($report);
		$reportDispatcher->setView($view);
		$data = $reportDispatcher->getReportCompatibleData();
		if ($data === null)
		{
			$errors = $reportDispatcher->getErrors();
			if(count($errors) > 0)
			{
				foreach ($errors as $error)
				{
					$result['errors'][] = $error->getMessage();
				}
				return $result;
			}
			continue;
		}
		if (!$reportDispatcher->getErrors())
		{
			if ($view::MAX_RENDER_REPORT_COUNT == 1)
			{
				$handledReportData = $data;
			}
			elseif ($view::MAX_RENDER_REPORT_COUNT > 1)
			{
				$handledReportData[] = $data;
			}
		}
		else
		{
			foreach ($reportDispatcher->getErrors() as $error)
			{
				$result['errors'][] = $error->getMessage();
			}
		}
	}
	return $handledReportData;
}