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

<< Click to Display Table of Contents >>

Navigation:  Проект > Документы объектов > Генератор отчетов > Примеры построения отчетов > Различные способы обработки данных > Пример первый. Обработка атрибута времени. >

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

Задание

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

Решение

В объект добавлено значение "Значение параметра" и две команды "Начало" и "Конец". У значения при помощи имитации архив был наполнен данными, а у команд "Начало" и "Конец" установлены значения до опроса – ими мы будем ограничивать интервал выборки из архива.

ReportManualPart2_img1

Создадим отчет у объекта "Максимум и минимум". Добавим новый источник данных "Архив MasterSCADA" и назовем его "Данные".

ReportManualPart2_img2

Соединим команды "Начало" и "Конец" с одноименными параметрами источника. У параметра "Интервал" зададим значение – 10 секунд.

ReportManualPart2_img3

В свойствах источника данных "Данные" установим способ формирования "Периодический"

ReportManualPart2_img4

Затем добавим в источник значение "Значение параметра". Нам необходимо получить максимум, время максимума, минимум и время минимума данной переменной, поэтому необходимо вытащить ее в источник из дерева объектов четыре раза – то есть создать 4 колонки в источнике данных.

ReportManualPart2_img5

Переименуем колонки – вызовем контекстное меню и выберем пункт Изменить.

ReportManualPart2_img6

Зададим имя колонке "Значение_максимум".

ReportManualPart2_img7

Аналогично переименуем остальные колонки – зададим им имена "Время_максимум", "Значение_минимум" и "Время_минимум".

ReportManualPart2_img8

Теперь установим способ обработки у каждого параметра. Выделим колонку "Значение_максимум" и перейдем на закладку Свойства.

ReportManualPart2_img9

Атрибут данных оставим Значение - в этом случае данная колонка будет получать значения из архива переменной MasterSCADA.

Вернемся на закладку Словарь и выделим колонку "Время_максимум" и перейдем на закладку Свойства. Сначала установим другой атрибут – установим "Время". ReportManualPart2_img11

Теперь установим обработку "Максимум".

ReportManualPart2_img12

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

Аналогичным образом настроим колонки "Значение_минимум" и "Время_минимум".

ReportManualPart2_img14

Вытащим источник данных "Данные" на рабочую область страницы. В окне Данные отметим все колонки, включим вставку бэндов Заголовок данных и Итог данных, а также зададим нужное чередование столбцов

ReportManualPart2_img15

Откорректируем бэнды – сделаем выравнивание по центру, включим границу, у ячеек для вывода числовых значений зададим формат числа.

ReportManualPart2_img16

Запустим построение отчета

ReportManualPart2_img17

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

Теперь подсчитаем итог – найдем самое маленькое и самое больше значение в отчете и также определим их метки времени. Вернемся в режим разработки.

Сначала настроим вычисление максимума значения – вызовем двойным щелчком мыши редактор текста поля итога "Значение максимума", и перейдем на закладку Итог.  Установим функциюMax, Данные – наш бэнд данных "DataДанные", Колонка"Данные.Значение_максимум". Теперь функция вычислит максимальное значение колонки на данном бэнде и это значение будет записано в текстовое поле.

ReportManualPart2_img18

Теперь необходимо определить метку времени, когда было наибольшее значение. Однако вычислить метку времени таким же способом, как мы только что вычислили значение, не получится – функция Max вернет самое большое значение из столбца "Время_максимума", то есть значение из поля последней строки – "21.06.2012 13:57:14", а не правильное "21.06.2012 13:57:00".

Решить данную проблему можно двумя способами, подробно рассмотрим каждый.