Плагин Гибкий отчёт

Обзор

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

Установка

Плагин Гибкий отчёт устанавливается по инструкции. В ходе установки выполните дополнительное действие: скопируйте файл PlgElasticReport.xml из дистрибутива плагина в свой проект. Файл должен отображаться в проводнике проекта внутри узла Вебстанция > Конфигурационные файлы.

Конфигурирование

Отчёт состоит из секций, которые выводятся в выходной документ одна за другой. Каждая секция имеет свой тип, параметры и привязку к данным. Кроме того, отчёт имеет общие параметры, влияющие на все секции. Один и тот же отчёт может быть сгенерирован в различных форматах. В настоящий момент поддерживаются форматы PDF, Excel и HTML. При этом внешний вид одного и того же отчёта, сгенерированного в разных форматах, может незначительно отличаться.

Форма отчёта

Для каждой отчётной формы создаётся отдельный файл конфигурации в формате XML. Файл конфигурации задаёт форматирование отчёта и определяет привязку данных отчёта к каналам. Этот файл должен быть сохранён в директории представлений или в её поддиректории внутри проекта.

Файл отчёта

Редактирование файлов конфигурации может осуществляться в любом текстовом редакторе. Например, бесплатный редактор Notepad++ удобен для работы с XML-файлами.

Пример файла отчёта ElasticReport1.xml содержится в установочном пакете плагина. Данный пример включает подробное описание параметров настройки и демонстрирует формирование секций отчёта всех возможных типов.

Основные элементы файла конфигурации отчёта:

  • Элемент InputOptions содержит настройки входной формы отчёта, с помощью которой пользователь вводит параметры отчёта и запускает формирование документа.
  • Элемент OutputOptions содержит настройки форматирования генерируемого документа.
  • Элемент Document определяет содержимое отчёта.
    • Элемент DocumentOptions задаёт основные параметры, относящиеся ко всему документу.
    • Элемент Section описывает секцию отчёта, содержащую данные. Отчёт включает одну или несколько секций различных типов.

Поддерживаемые типы секций:

  • Секция TimeData отображает данные каналов за выбранный период времени. По горизонтали расположены каналы, по вертикали - временные точки.
  • Секция TimeTime отображает данные одного канала в компактной форме. По горизонтали и вертикали расположены временные точки.
  • Секция DataData отображает данные в форме таблицы, каждая ячейка которой может быть привязана к своему каналу.

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

Список отчётов

Конфигурационный файл PlgElasticReport.xml содержит список отчётов по группам, которые отображаются на странице Главное меню > Отчёты. Пример содержимого файла:

<?xml version="1.0" encoding="utf-8" ?>
<PlgElasticReport>
  <ReportGroup name="Elastic Reports" isPublic="false" objNum="0">
    <ReportItem reportID="1" isPublic="false" objNum="0" config="Reports\ElasticReport1.xml" prefix="MyRep" cnlNums="">My report</ReportItem>
  </ReportGroup>
</PlgElasticReport>

Атрибуты элемента ReportGroup:
name - отображаемое наименование группы отчётов;
isPublic - является ли группа публичной, то есть доступной всем пользователям;
objNum - номер объекта, к которому относятся отчёты группы. Ограничивает видимость группы в соответствии с правами пользователя на объект.

Атрибуты элемента ReportItem:
reportID - идентификатор отчёта, уникальный в пределах конфигурационного файла;
isPublic - является ли отчёт публичным, то есть доступным всем пользователям;
objNum - номер объекта, к которому относится отчёт. Ограничивает доступность отчёта в соответствии с правами пользователя на объект;
config - путь к файлу конфигурации отчётной формы относительно директории представлений,
prefix - префикс имени файла, используемый при скачивании отчёта,
cnlNums - фиксированные номера каналов, по которым строится отчёт.

Стили

Имеется возможность настроить собственные стили отчётов: шрифты, цвета, размеры ячеек и т.д. Для каждого формата отчётов стили настраиваются отдельно.

PDF-стили

Файлы PdfStyleDefault.xml и PdfStyleCustom.xml задают форматирование отчётов в формате PDF. Эти файлы расположены в директории веб-приложения ScadaWeb\wwwroot\plugins\ElasticReport\templates. Файл PdfStyleDefault.xml содержит стили по умолчанию и должен оставаться неизменным. Пользовательские стили добавляются в файл PdfStyleCustom.xml. Создавая пользовательские стили, можно наследовать новые стили от существующих или переопределять существующие стили.

Excel-стили

Аналогично файлы ExcelStyleDefault.xml и ExcelStyleCustom.xml, расположенные в той же директории, задают форматирование отчётов в формате Excel. Файл ExcelStyleDefault.xml содержит стили по умолчанию и должен оставаться неизменным. Пользовательские стили добавляются в файл ExcelStyleCustom.xml. Будьте внимательны, форматы файлов стилей PDF и Excel отличаются.

HTML-стили

Файлы html-style-default.scss и html-style-custom.css определяют отображение отчётов в формате HTML. Файлы расположены в директории ScadaWeb\wwwroot\plugins\ElasticReport\css. Пользовательские стили добавляются в файл html-style-custom.css по правилам каскадных таблиц стилей (CSS).

Шрифты

Шрифты в формате PDF

При формировании отчётов в формате PDF по умолчанию используется шрифт Arial. Если требуемый шрифт отсутствует в операционной системе, он заменяется на встроенный шрифт Segoe WP. Чтобы изменить шрифт отчётов, необходимо отредактировать файл стилей.

Поиск шрифта для загрузки происходит по следующему алгоритму:

  1. Определяется директория поиска. На Windows поиск выполняется в директории C:\Windows\Fonts, на Linux - в директории /usr/share/fonts/truetype
  2. На основе имени шрифта (FontFamily) определяются требуемые имена файлов шрифтов.
    1. Обычный шрифт: FontFamily.ttf, FontFamily-Regular.ttf
    2. Жирный шрифт: FontFamilyb.ttf, FontFamilybd.ttf, FontFamily-Bold.ttf
    3. Наклонный шрифт: FontFamilyi.ttf, FontFamily-Italic.ttf, FontFamily-Oblique.ttf
    4. Жирный и наклонный: FontFamilybi.ttf, FontFamily-BoldItalic.ttf, FontFamily-BoldOblique.ttf
  3. Определяются запасные имена файлов шрифтов (кандидаты). Для жирного или наклонного шрифта в качестве кандидатов используются файлы обычного шрифта. Для обычного шрифта запасные варианты отсутствуют.
  4. Если в директории поиска находится желаемый или запасной шрифт, то файл шрифта загружается и предоставляется для генерации отчёта. Поиск не чувствителен к регистру символов.

Установленные по умолчанию шрифты обычно не содержат символов таких языков как китайский и корейский. Для формирования отчётов на таких языках рекомендуется установить шрифт Arial Unicode MS. На Windows установка шрифта должна производиться для всех пользователей, чтобы файл шрифта был помещён в директорию C:\Windows\Fonts

Установка шрифта

Шрифты в формате Excel

В генерируемых отчётах в формате Excel указывается только наименование шрифта, сам шрифт не включается в файл отчёта. По умолчанию используется шрифт Arial. При открытии файла с помощью Microsoft Excel или Libre Office Calc шрифт загружается приложением из системы. Если шрифт отсутствует, используется автоматическая замена. Изменить шрифт можно с помощью файла стилей.

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

Список отчётов отображается на странице Главное меню > Отчёты согласно конфигурационному файлу PlgElasticReport.xml. По щелчку мыши на элементе списка отчётов пользователь переходит на страницу ввода параметров отчёта. Набор полей этой формы зависит от настроек отчёта. После ввода параметров отчёта нажмите кнопку Скачать отчёт, чтобы запустить генерацию и скачивание отчёта.

Генерацию отчёта можно запустить по прямой ссылке. При этом вход пользователя в систему должен быть выполнен. Примеры ссылок приведены ниже. Обратите внимание, что наборы параметров запроса для адресов PrintReport1 и PrintReport2 различаются.

Пример 1:
http://localhost:10008/ElasticReport/Print/PrintReport1?reportID=1&startTime=2024-05-28&endTime=2024-05-29&archive=Hour&format=Html

Пример 2:
http://localhost:10008/ElasticReport/Print/PrintReport2?reportID=1&period=1&unit=Day&archive=Hour&format=Html

Параметр Тип данных Описание
reportID Целое число Идентификатор отчёта из файла PlgElasticReport.xml
startTime Дата и время в формате YYYY-MM-DD или YYYY-MM-DD'T'HH:MM Начальная дата и время отчёта
endTime Дата и время Конечная дата и время отчёта
period Целое число Период отчёта относительно текущей даты
unit Day | Month Единица измерения периода отчёта
archive Строка Код архива, из которого извлекаются данные для отчёта
format Pdf | Xlsx | Html Формат выходного документа