Специальный (Кастомный) отчет - это универсальный отчет со своим оформлением и спецификой формирования для выгрузки необходимых данных с системы в Excel или Pdf файл.

Специальные отчеты может создавать пользователь с правом управлять специальными отчетами.
Пользователи с доступом к отчетам или отчетам по обучению получают возможность пользоваться Специальными отчетами - делать выборку данных в доступных полях (например выбирать пользователей или задания, указывать период)

Особенности создания кастомных отчетов:

  1. date_range разбивается на две переменные: $dateFrom, $dateTo.

  2. Переменные что создаем в отчете, доступные в коде в массиве $data.

Пример:

$data['useAllTasks']

  1. Классы нужно прописывать глобально

Пример:

Modules\Tasks\Model\TaskRefUser::STATUS_NOT_STARTED

  1. Для кода форматирования Excel используем переменную $pExcel
    Автоматически выполняется:
$pExcel = new \PHPExcel();
$pExcel->setActiveSheetIndex(0);

  1. Для параметров которые выбирают данные из запроса (Одиночный выбор, Множественный выбор)
  • результирующий массив (res) должен содержать два поля: id, text
  • для одиночного выбора, возвращается значение из поля id
  • для множественного: строка с id через запятую.

  1. Для конвертации в Pdf использовано https://tcpdf.org
    Для вывода в pdf, html код присваиваем переменной $html.

Пример:

$html ='<h1>'.$res['title'].'</h1>' . '<table cellspacing="0" cellpadding="1" border="1">
<tr>
<td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3</td>
<td>COL 2 - ROW 1</td>
<td>COL 3 - ROW 1</td>
</tr>
...........
</table>';