<< Click to Display Table of Contents >> Navigation: Проект > Документы объектов > Генератор отчетов > Примеры построения отчетов > Различные способы обработки данных > Пример третий. Обработка признака качества > Пример 2 |
Для реальных отчетов, как правило, не требуется выводить тип ошибки и выделять цветом строки – некорректные данные достаточно просто не выводить (или вставить вместо них замещающий текст). Для примера сформируем отчет, на основе тех же данных что и для предыдущего отчета, но теперь если в строке данных некорректный признак качества нужно вставить в поле текст – "Не определено". В конце отчета нужно построить график, значение с некорректным признаком качества на графике отображаться не должны.
Создадим еще один отчет в объекте "Обработка признака качества". Как и в предыдущем отчете создадим источник данных и добавим в него "Значение параметра", свяжем переменные "Начало" и "Конец" с одноименными параметрами, способ формирования источника – Периодический.
Выделим колонку "ЗначениеПараметра" и перейдем на закладку Свойства. Помимо настроек атрибута и признака качества у колонки есть настройки для обработки плохих признаков.
Настройка Игнорировать значения задает - игнорировать ли значения с "не хорошим" признаком качества при обработке данных на каждом интервале. Например, если во время работы сломался датчик, то прибор может вернуть измеренное значение равное нулю, и статус отказа. Если не использовать обработку плохих признаков, то отчет может посчитать 0 как корректное число, и например, при способе обработки Минимум вернуть 0 как минимальное число – что является неверным. Если же будет включено игнорирование плохих признаков, то это значение будет отброшено и на итоговый результат не повлияет.
На интервале времени также может возникнуть следующая ситуация – несколько значений имеют "хороший" признак качества, а несколько – "плохой" (например, не было связи с прибором опрашиваемом по беспроводному каналу). Если используется способ обработки Последнее значение, то корректно выдать последнее "хорошее" значение. Аналогично можно поступить для обработок Максимум, Минимум, Первое значение - провести обработку среди значений с хорошими признаками, а плохие – проигнорировать. Однако если используется обработка Среднее, Интегральное среднее то просто игнорирование плохих значений при обработке может оказаться некорректным поведением – поскольку результат обработки зависит от всех значений интервала (в том числе от значений, которые были некорректно вычислены). Правильным поведением в таком случае – применить признак "Не определено" для всего интервала.
Для этих целей у колонок источника, в разделе "Обработка плохих признаков" есть специальная настройка - Настройка признака результата. Данная настройка задает, какой признак качества будет выставляться у результата, если на интервале находятся некорректные значения, влияющие на результат. Доступны 4 настройки:
•Good – результату устанавливается признак качества "хороший".
•Bad – результату устанавливается признак качества "плохой".
•Uncertain – результату устанавливается признак качества "неопределенно".
•Наследовать – в этом случае наследуется признак результата обработки.
Если на интервале обработки будет обнаружено значение, влияющее на результат, с данным признаком качества (Stop, Bad, Uncertain – в зависимости от группы настроек), то в результате колонка будет иметь признак определенный данной настройкой.
Например, если способ обработки - Последнее значение, а последнее значение на интервале имело признак, относящийся к Bad (Ошибка датчика, Ошибка устройства и т.д.), то признак результата определится настройкой группы настроек Bad. Если на интервале есть значение с признаком Bad, но оно не является последним, то на результат оно не влияет.
Для способа обработки Среднее (а также Интеграл и Интегральное среднее) результирующий признак качества определяется на основании всех значений интервала (поскольку на результат влияют все значения). То есть если на интервале будет обнаружено одно значение, относящее к признаку качества Bad, то ко всему интервалу будут применены настройки группы Bad.
Подробнее про данную группу настроек вы можете прочитать в справочной системе редактора отчетов.
Есть возможность настроить обработку трех признаков качества:
Stop – признак остановки режима исполнения.
Bad – признак качества "Ошибка". В этот признак качества входят признаки – "Плохой" (Bad -0), "Ошибка конфигурации" (Config Error – 4), "Нет соединения" (Not Connected – 8), "Ошибка устройства" (Device Failure - 12), "Ошибка датчика" (Sensor Failure - 16), "Последнее значение" (Last Know – 20), "Нет связи" (Comm Failure – 24), "Не обсуживается" (Out of service – 28).
Uncertain – признак качества "Не определено". В этот признак входят признаки – "Не определено" (Uncertain – 64), "Датчик не откалиброван" (Sensor Cal – 80), "Значение не допустимо" (Egu Exceeded – 84 и SubNormal - 88).
Включим игнорирование признаков Stop, Bad и Uncertain. Настройку признаков результата оставим по умолчанию.
Теперь сделаем чтобы, колонки с недостоверным результатом преобразовывались в Null. Включим настройку Конвертировать в Null недостоверные значения - теперь колонки с недостоверным результатом, будут преобразованы в Null.
Перетащим на страницу источник данных, выберем все данные, включим добавление заголовка и итога.
На страницу добавились три бэнда с полями.
Запустим построение отчета
Теперь поля, в которых значение имело "не хороший" признак качества, пусты.
Сделаем, чтобы в пустых полях выводился текст. Для этого вновь воспользуемся инструментом Условное выделение. Выделим поле со значением и вызовем инструмент Условное выделение.
Добавим новое условие, установим тип Выражение, пропишем код:
Данные.ЗначениеПараметра==null
Данный код проверяет наличие значения колонки "ЗначениеПараметра". Если значения нет, то колонка равна null. В этом случае можно применять условное выделение – подменим текст поля.
Оформим отчет и запустим построение отчета:
В конце нам необходимо добавить график. Увеличим размер бэнда Итог данных и разместим на нем компонент Диаграмма типа "Линия". Перетащим параметры "Время" и "Значение параметра" из источника данных в окно настройки диаграммы, а затем настроим диаграмму - уберем подписи и повернем подписи заголовка Оси Х на 90 градусов.
Запустим построение отчета.
График построился, но в тех промежутках графика, в которых у нас было некорректное значение, линия графика опустилась в ноль. Нам же необходимо чтобы эти значения не отображались вовсе – то есть должен быть разрыв графика.
Вернемся в режим проектирования отчета, и запустим редактирование диаграммы. В свойствах каждого ряда, в разделе Основные, в свойствах Данные есть настройка Показывать неопределенные. Установим данную настройку в "Нет" - теперь неопределенные значения (то есть значения равные null) на графике отображаться не будут.
Снова запустим построение отчета.
Теперь график построился корректно.
Примечание. Готовый отчет можно посмотреть в проекте "Обработка в отчетах" в объекте "Обработка признака качества" - "Отчет 2".