Пожалуйста, включите JavaScript для просмотра этого сайта.

Отчеты Simple-Scada

Важно! В описанном ниже примере будут учитываться только завершенные сообщения (у которых имеется отметка времени в колонке "Завершено"). Если сообщение не завершено, то оно не попадет в отчет.

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

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

 

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

 

Затем перетянуть источник на страницу отчета. В окне создания источника снять флажки со всех колонок и включить заголовок данных.

 

После проделанных действий будут созданы бэнды "Данные" и "Заголовок данных". Высоту бэнда "Данные" необходимо установить равной 0. В бэнде "Заголовок данных", используя компонент "Текст" необходимо разместить нужные подписи колонок - в данном примере это: Тип, Текст сообщения, Минимум, Максимум, Среднее, Общая, Количество. При необходимости, можно добавить заголовок отчета используя бэнд "Заголовок отчета".

 

Далее нужно расположить над бэндом "Данные" бэнд "Заголовок группы":

 

Условием группировки должна быть колонка "ID сообщения" источника данных (т.е. все сообщения с одинаковым ID будут группироваться):

 

В созданном бэнде "Заголовок группы", используя компонент "Текст" необходимо разместить нужные поля - в данном примере это: Тип, Текст сообщения, Минимум, Максимум, Среднее, Общая, Количество. Далее нужно дважды кликнуть по первому полю и в открывшемся окне выбрать "Колонка данных" -> "Тип". Чтобы в колонке "Тип" отображался цвет соответствующий типу сообщения, необходимо проделать действия описанные в примере "Вывод сообщений в отчет". Затем нужно дважды кликнуть по второму полю и в открывшемся окне выбрать "Колонка данных" -> "Текст сообщения". В итоге получится такой отчет:

 

Для вычисления максимальной длительности нужно выделить поле, в котором она будет отображаться, перейти на вкладку "События" и на событие "Взять значение" назначить следующий код:

TimeSpan ts = MaxTime(GroupHeaderBand1,Сообщения.Длительность);
e.Value = ((int)ts.TotalHours).ToString() + ":" + ts.ToString(@"mm\:ss");

Для полей Минимум, Среднее, Общая необходимо проделать аналогичные действия, только функцию MaxTime заменить на MinTime, AvgTime и SumTime соответственно.

 

Для вычисления общего количества нужно дважды кликнуть по полю и указать выражение "{Count(GroupHeaderBand1)}":

 

Отчет готов. Так выглядит отчет на предварительном просмотре: