|
<< Click to Display Table of Contents >> Navigation: Создание отчетов > Пример создания отчета |
Имеем контролируемые параметры, на основании которых нужно построить отчет. Оператор должен иметь возможность выбрать время начала составления отчета, время окончания, а также интервал, с которым будет появляться новая строка. Так, например, если стоит задача построить суточный отчет с интервалом в 1 час, то оператору нужно задать время начала отчета, время окончания, которое отличается на 24 часа от значения предыдущего параметра, и интервал 60 минут. В этом случае в отчете должно появится 24 строки. Значение, которое будет отображено в отчете, будет зависеть от способа обработки архивных данных, например, может выбраться максимальное значение, за контролируемый час, минимальное, среднее и др. Поскольку отчёт формируется на основе архивных данных, для контролируемых параметров в проекте должен быть установлен флаг Архивировать.
Важно! Модуль отчетов работает на исполнительных системах для ОС Windows, Linux. При использовании модуля в предопределенных контроллерах необходимо уточнить, поддерживается ли он в каждом конкретном типе.
В проект добавляем служебные параметры, необходимые для формирования отчета:
Название |
Тип |
Назначение |
|---|---|---|
Начало |
DT |
Определяет время начала формирования отчета |
Конец |
DT |
Определяет время окончания формирования отчета |
Интервал |
Time |
Время, определяющее, через какой промежуток будет формироваться новая строка или столбец |
Сформировать |
Bool |
Команда оператора, после которой начнется формирование отчета |
Параметры Начало, Конец, Интервал и Сформировать размещаем в окне, в удобном для оператора виде. Пример окна:

Если отчет должен формироваться автоматически, то данные параметры могут формироваться в результате работы программ, например, ST.
Отчет может быть создан как в узле, так и в объекте. Рассмотрим создание отчета в объекте.
Чтобы добавить отчет в проект, необходимо выполнить пункт контекстного меню объекта Добавить/Отчет.
Итак, создадим в проекте объект с именем Формирование отчета, в него добавим элемент Отчет:

Редактор создания отчетов откроется автоматически.
В группе объекта Ресурсы, появится подгруппа Отчеты, в которой будет находится созданный элемент.

При необходимости можно изменить имя отчета в его панели свойств.
Также стоит обратить внимание на свойство Полное имя, которое в будущем пригодится. Значение свойства Полное имя можно скопировать:

Далее в отчет добавим источник данных проекта - Архив данных:

В группу Колонки архива данных перетаскиваем контролируемые параметры - появятся колонки архива, имена которых будут совпадать с именами связанных параметров:

Затем необходимо связать элементы из подгруппы Параметры с соответствующими элементами дерева объектов:

Далее необходимо определить способ формирования отчета. Для этого выделим элемент Архив данных в дереве проекта. И перейдем на панель свойств элемента. Для решения поставленной задачи укажем Способ формирования данных - Периодический.

Далее необходимо выбрать способ обработки данных, т.е как рассчитывать значения для записи в отчет. Нужно выделить колонку в архиве и перейти на панель свойств, где определить для каждого параметра свой способ обработки.

Например, если отчет будет формироваться раз в час, т.е. время начала будет 10:00, а время окончания 11:00, а Интервал будет 10, то в отчете будет 6 строк, и нужно определить какое число попадет в ячейку отчета, если выбрать способ обработки - минимальное, то в отчет попадет самое маленькое значение за 10 минут, если максимальное - то соответственно самое большое.
Добавляем в проект служебный ФБ из библиотеки: BaseObjects.ФБ.Системные.ReportFB, который управляет формированием отчета.
В настройках входа Name необходимо указать в качестве значения по умолчанию Имя отчета, которым будет управлять данный ФБ. Имя отчета содержит в себе имя объекта и его родителей, в которым находится отчет, и имя самого отчета. Поэтому можно вставить ранее скопированное Полное имя отчета и удалить оттуда несущественные элементы. Например, свойство Полное имя имеет значение: Объекты.Формирование отчета.Ресурсы.Отчеты.Отчет 1, нужно оставить - Объекты.Формирование отчета.Отчет 1.

Если отчет создан в дереве системы, то в свойстве нужно указать только имя отчета. Имя узла указывать не требуется.
Вход Execute нужно соединить с параметром Сформировать.
Для того чтобы источники отображались в редакторе отчета, нужно синхронизировать источники по дереву проекта. Для этого можно использовать кнопку синхронизации в редакторе отчетов. После синхронизации источники (в данном случае Архив данных) будут добавлены в элемент Проект [Текущий проект] на панели Словарь.

Внешний вид отчета определяется его шаблоном, который задается в рабочей области. Заголовок отчета, а также вид каждой новой страницы определяется элементами, которые располагаются с левой стороны поля отчета.

Добавим Заголовок отчета. Разместим в появившемся контейнере элемент Текст (свойства также настраиваются на соответствующей панели внутри редактора отчетов).
Перетащим из словаря элемент Архив данных на поле отчета. В диалоговом окне укажем, какие столбцы необходимы отображать в отчете.

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

Созданный отчет попадет в базу данных проекта. После компиляции проекта, его запуска в исполнительной системе и формирования отчета (помните, что для формирования отчета нужны архивные данные), если не были заданы дополнительные настройки, то отчет сохранится по умолчанию в папке <папка узла>\htdocs\reports.
Например:
•если узел запускается локально из среды разработки, то используется папка: <имя пользователя>\AppData\Roaming\MPSSot\MasterSCADA4D_DT_2.0\ProjectsServiceData\<имя проекта>\Debug\<имя узла>\PLC\htdocs\reports;
•если узел запускается локально в режиме эмуляции из среды разработки, то используется папка: <имя пользователя>\AppData\Roaming\MPSSot\MasterSCADA4D_DT_2.0\ProjectsServiceData\<имя проекта>\Debug\web_imit\htdocs\reports;
•если используется отдельно установленная исполнительная система MasterSCADA 4D RT, то узел запускается из папки запуска проекта:
oпо умолчанию для среды исполнения Windows: C:\ProgramData\MPSSoft\MasterSCADA4D_RT\rt\Server\htdocs\reports;
oпо умолчанию для среды исполнения Linux: /opt/mplc4/htdocs/reports.
Рассмотрим один из возможных способов открытия ранее сформированного отчета в окне:
•Добавим в окно графический элемент Контейнер окна;
•Добавим в окно графический элемент Кнопка;
•В панели свойств кнопки перейдем в режим События, добавим событие Клик мыши и действие Открыть адрес;
•Установим связь между выходом Path ФБ ReportFB и параметром действия Адрес;
•Свяжем параметр действия Контейнер окна с элементом Контейнер окна, перетащив параметр на графический элемент.

В результате в клиенте будет открываться последний созданный отчет.