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

<< Click to Display Table of Contents >>

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

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

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

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

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

Реализация

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

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

Название

Тип

Назначение

Начало

DT

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

Конец

DT

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

Интервал

Time

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

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

Bool

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

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

primer_sozd_otcheta_5

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

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

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

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

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

primer_sozd_otcheta

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

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

primer_sozd_otcheta_1

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

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

primer_sozd_otcheta_2

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

primer_sozd_otcheta_6

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

primer_sozd_otcheta_7

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

primer_sozd_otcheta_8

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

nastr_arhiv_dannyh

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

sposob_obrabotki

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

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

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

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

primer_sozd_otcheta_3

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

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

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

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

peremennye_tekushiy_proect_1

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

panel_instr

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

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

primer_shablon

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

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

sohr_otchet

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

Например:

если узел запускается локально из среды разработки , то используется папка: <имя пользователя>\AppData\Roaming\MPSSot\MasterSCADA4D<версия>\ProjectsServiceData\<имя проекта>\Debug\<имя узла>\PLC\htdocs\reports ,

если узел запускается локально в режиме эмуляции из среды разработки , то используется папка:<имя пользователя>\AppData\Roaming\MPSSot\MasterSCADA4D<версия>\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_sozd_otcheta_4

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