Генератор шаблонов отчёта

Последнее обновление: 31 января 2023

Расположение

Весь функционал для создания шаблона индивидуального отчёта расположен во вкладке Генератор шаблонов отчётов:

Вкладка ГШО

ГШО

Как получить доступ к данной вкладке

В зависимости от Вашего контракта и изначальных требования, Администрация приложения, по Вашему запросу, может включить данную вкладку, в которой будет доступен весь её функционал.

Введение

  • Данный модуль позволяет администраторам организации создавать самостоятельно шаблон отчёта, которым в дальнейшем сможет пользоваться вся организация.
  • Язык программирования, на котором пишется шаблон отчета - JavaScript.
  • Пакет для работы с Excel - excel4node.

Инструкция создания шаблона отчёта

1. Выбор шаблон отчета

Стандартное значение для отчета при переходе на вкладку будет - “Новый отчет”, что подразумевает создание нового шаблона отчета. Если необходимо обновить уже ранее созданный шаблон отчёта, его необходимо выбрать в раскрывающемся списке. В случае создания нового отчета, в раскрывающемся списке должен быть выбран вариант “Новый отчет”. Поле обязательно к выбору значения.

Выбор опции нового отчёта

2. Название отчёта

Значение, которое будет отображать название отчёта во вкладке “Шаблоны отчётов”. Настоятельно рекомендуем вводить уникальное название для каждого отчёта, для комфортной работы в дальнейшем. Поле обязательно к заполнению.

Ввод названия отчёта

3. Выбор полей фильтрации

В данном раскрывающемся списке имеется возможность выбрать поля фильтрации, которые будут предоставлены пользователю при генерации отчета. На текущий момент доступны следующие поля:

  • фильтр начальной даты и времени;
  • фильтр конечной даты и времени;
  • групповой фильтр субъекта (группа юнитов);
  • одиночный фильтр субъекта (юнит);
  • фильтр года;
  • фильтр месяца.

Данные фильтры проще всего использовать вместе, например, фильтр начальной даты и времени с фильтром конечной даты и времени; фильтр года с фильтром месяца и т.д. . Однако, какие-либо ограничения по использованию фильтров отсутствуют. Это поле необязательно для создания нового шаблона отчёта, а так же, одновременно могут быть выбраны все доступные фильтры.

Выбор фильтров

4. Описание отчёта

Данное поле предоставлено для описания шаблона отчёта, к примеру, можно описать все подробности настройки юнита для этого отчета или же подробно описать результат выполнения данного шаблона отчета. Поле обязательно к заполнению.

Ввод описания

5. Код отчёта

В данном поле, необходимо описать всю логику обработки данных как входных, так и данных, которые были получены во время генерации отчета, на языке программирования JavaScript. Изначально, в данном поле находится код генерации отчёта по состоянию подключения и включения датчиков.

Код шаблона отчёта

Подробнее об алгоритме генерации отчета (код отчёта)

Генерация отчета делиться на два этапа:

  • получение данных в функции в функции getData;
  • экспорт данных в Excel в функции make, с последующей генерацией файла формата xlsx.

Важно учитывать, что это две обязательные функции, которые должны быть написаны в коде генерации отчета. Если они не будут обнаружены в коде отчёта, процесс не будет выполнен. Поэтому, логику формирования отчёта следует делить на два этапа:

  1. получение данных и преобразование их к желаемому формату;
  2. экспорт данных в .xlsx файл.

Получение данных и их преобразование

К получению данных и их преобразованию относится родительская функция с названием getData, функция this.callService, которая, скорее всего будет использоваться в getData, и другие функции, которые можно написать самостоятельно и использовать по своему усмотрению, но в рамках, которые не выходят за ограничения системы.

Функция getData

Данная функция имеет один входной аргумент, в виде JSON-объекта, в котором содержатся значения переданные при запросе на генерацию отчета, к примеру начальная и конечная дата выборки за период (startDate, endDate), номер группы юнитов, по которой будет производится отчет (group_name) или один юнит (unit). Выходные данные функции являются тем, что необходимо экспортировать в файл .xlsx формата. То есть, это может быть массив объектов или же объект.

Функция callService

Для использования Wialon API имеется функция this.callService с входными параметрами как:

  1. String - название метода в Wialon API, например: “report/exec_report”, то есть, что идёт параметром в запросе как svc. Обязательный параметр.
  2. Object - все параметры, которые будут использоваться в API, например:
{
  reportResourceId: idOfResource,
  reportTemplateId: idTemplate,
  reportTemplate: null,
  reportObjectId: Number(reportObjId),
  reportObjectSecId: 0,
  interval: {
    flags: 16777216,
    from: Number(dateFrom),
    to: Number(dateTo)
  },
  reportObjectIdList: []
};

Параметр обязателен. Если в запросе не нужны параметры, то необходимо передавать пустой JSON-объект {};

Поведение при ошибках.

При получении любого ответа, который не является некорректным выполнением или же response содержит в себе свойство error со значением больше 0, будет вызвано исключение с последующей остановкой работы генерации отчета. Объект исключения содержит в себе код ошибки, который информирует о том, что же было причиной ошибки.

Выходными данными является response выполненого запроса.

Для получения данных, которые не относятся к API Wialon можно подключить и использовать пакет “request”:

conts request = require("request");

Как правило, это делают в первых строках кода.

Экспорт преобразованных данных

Функция make

Данная функция выполняется после завершения работы функции getData. Входным параметром является то, что было возвращено функцией getData. Так же как и для getData, для данной функции есть несколько функций для упрощения экспорта.

Функция addWorksheet

Вызывается с помощью конструкции:

this.wb.addWorksheet(title);

Входным параметром является строка со значением название листа.

Функция createStyle

Вызывается с помощью конструкции:

this.wb.createStyle(style);

Входным параметром является JSON-объект. Формат объекта для создания стиля описан в документации excel4node.

Результат выполнения отчёта

При успешном выполнении всех функции, которые были описаны будет сформирован файл с данными, который можно скачать во вкладке Сгенерированные отчеты. При возникновении ошибки, будет возвращен объект с подробностями об ошибке, который будет выведен в отдельной области или отладочными сообщениями.

6. Сохранение шаблона отчёта

После того, как были выполнены предыдущие шаги, необходимо сохранить новый шаблон отчета, чтобы он стал доступен для использования. Для этого, необходимо нажать на кнопку Сохранить. Теперь, шаблон отчета доступен для использования организации администратора во вкладке Шаблоны отчётов, который создал данный шаблон.

Клик на кнопку Сохранить

Отчёт на вкладке Шаблоны отчётов

Генерация отчета

Шаблон отчета, который был создан доступен для генерации на вкладке Шаблоны отчетов, а также на текущей вкладке, где и производилось создание данного шаблона. Для его генерации, пользователю необходимо выбрать отчет в выпадающем списке, нажать на кнопку Сгенерировать отчет. При наличии фильтров выбрать для них значения и отправить запрос на генерацию отчета.

Клик на кнопку Сгенерировать отчёт

Клик на кнопку Создать

Отчёт в процессе генерации

Отчёт сгенерирован

Если необходимо просмотреть отладочные сообщения, тогда это следует делать на вкладке Генератор шаблонов отчетов.

Логи

Если же генерации отчета подразумевает привычное использование без отладки, в таком случае это можно делать как на вкладке Генератор шаблонов отчетов, так и на вкладке Шаблоны отчетов.

Новый отчёт на вкладке с шаблонами отчётов

Редактирование шаблона отчет

Для редактирования любых параметров шаблона, необходимо перейти во вкладку Шаблоны отчетов и нажать на кнопку Редактировать интересующего шаблона отчета или же перейти на вкладку Генератор шаблонов отчетов и выбрать в выпадающем списке шаблонов отчётов отчёт, который подлежит изменению.

Клик на кнопку Редактировать