Пример создания отчета

<< Click to Display Table of Contents >>

Navigation:  Создание отчетов >

Пример создания отчета

Постановка задачи

Имеем контролируемые параметры, на основании которых нужно построить отчет. Оператор должен иметь возможность выбрать время начала составления отчета, время окончания, а также интервал, с которым будет появляться новая строка. Так, например, если стоит задача построить суточный отчет с интервалом в 1 час, то оператору нужно задать время начала отчета, время окончания, которое отличается на 24 часа от значения предыдущего параметра, и интервал 60 минут. В этом случае в отчете должно появится 24 строки. Значение, которое будет отображено в отчете, будет зависеть от способа обработки архивных данных, например, может выбраться максимальное значение, за контролируемый час, минимальное, среднее и др. Поскольку отчёт формируется на основе архивных данных, для контролируемых параметров в проекте должен быть установлен флаг Архивировать.

Важно! Модуль отчетов работает на исполнительных системах для ОС Windows, Linux. При использовании модуля в предопределенных контроллерах необходимо уточнить, поддерживается ли он в каждом конкретном типе.

Реализация

Параметры формирования отчета

В проект добавляем служебные параметры, необходимые для формирования отчета:

Название

Тип

Назначение

Начало

DT

Определяет время начала формирования отчета

Конец

DT

Определяет время окончания формирования отчета

Интервал

Time

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

Сформировать

Bool

Команда оператора, после которой начнется формирование отчета

Параметры Начало, Конец, Интервал и Сформировать размещаем в окне, в удобном для оператора виде. Пример окна:

Primer_sozdaniya_otcheta

Если отчет должен формироваться автоматически, то данные параметры могут формироваться в результате работы программ, например, ST.

Создание и настройка элемента отчет

Отчет может быть создан как в узле, так и в объекте. Рассмотрим создание отчета в объекте.

Чтобы добавить отчет в проект, необходимо выполнить пункт контекстного меню объекта Добавить/Отчет.

Итак, создадим в проекте объект с именем Формирование отчета, в него добавим элемент Отчет:

Primer_sozdaniya_otcheta_1

Редактор создания отчетов откроется автоматически.

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

Primer_sozdaniya_otcheta_2

При необходимости можно изменить имя отчета в его панели свойств.

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

Primer_sozdaniya_otcheta_3

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

Primer_sozdaniya_otcheta_4

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

Primer_sozdaniya_otcheta_5

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

Primer_sozdaniya_otcheta_6

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

Primer_sozdaniya_otcheta_7

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

Primer_sozdaniya_otcheta_8

Например, если отчет будет формироваться раз в час, т.е. время начала будет 10:00, а время окончания 11:00, а Интервал будет 10, то в отчете будет 6 строк, и нужно определить какое число попадет в ячейку отчета, если выбрать способ обработки - минимальное, то в отчет попадет самое маленькое значение за 10 минут, если максимальное - то соответственно самое большое.

Управление формированием отчета

Добавляем в проект служебный ФБ из библиотеки: BaseObjects.ФБ.Системные.ReportFB, который управляет формированием отчета.

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

Primer_sozdaniya_otcheta_9

Если отчет создан в дереве системы, то в свойстве нужно указать только имя отчета. Имя узла указывать не требуется.

Вход Execute нужно соединить с параметром Сформировать.

Редактор отчетов

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

Primer_sozdaniya_otcheta_10

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

Primer_sozdaniya_otcheta_11

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

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

Primer_sozdaniya_otcheta_12

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

Сохраним отчет в редакторе отчетов:

Primer_sozdaniya_otcheta_13

Созданный отчет попадет в базу данных проекта. После компиляции проекта, его запуска в исполнительной системе и формирования отчета (помните, что для формирования отчета нужны архивные данные), если не были заданы дополнительные настройки, то отчет сохранится по умолчанию в папке <папка узла>\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 и параметром действия Адрес;

Свяжем параметр действия Контейнер окна с элементом Контейнер окна, перетащив параметр на графический элемент.

Primer_sozdaniya_otcheta_14

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