Пример 2

<< Click to Display Table of Contents >>

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

Пример 2

Задание

Для реальных отчетов, как правило, не требуется выводить тип ошибки и выделять цветом строки – некорректные данные достаточно просто не выводить (или вставить вместо них замещающий текст). Для примера сформируем отчет, на основе тех же данных что и для предыдущего отчета, но теперь если в строке данных некорректный признак качества нужно вставить в поле текст – "Не определено". В конце отчета нужно построить график, значение с некорректным признаком качества на графике отображаться не должны.

Решение

Создадим еще один отчет в объекте "Обработка признака качества". Как и в предыдущем отчете создадим источник данных и добавим в него "Значение параметра", свяжем переменные "Начало" и "Конец" с одноименными параметрами, способ формирования источника – Периодический.

ReportManualPart2_img67

Выделим колонку "ЗначениеПараметра" и перейдем на закладку Свойства. Помимо настроек атрибута и признака качества у колонки есть настройки для обработки плохих признаков.

ReportManualPart2_img68

Настройка Игнорировать значения задает - игнорировать ли значения с "не хорошим" признаком качества при обработке данных на каждом интервале. Например, если во время работы сломался датчик, то прибор может вернуть измеренное значение равное нулю, и статус отказа. Если не использовать обработку плохих признаков, то отчет может посчитать 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. Настройку признаков результата оставим по умолчанию.

ReportManualPart2_img69

Теперь сделаем чтобы, колонки с недостоверным результатом преобразовывались в Null. Включим настройку Конвертировать в Null недостоверные значения - теперь колонки с недостоверным результатом, будут преобразованы в Null.

ReportManualPart2_img70

Перетащим на страницу источник данных, выберем все данные, включим добавление заголовка и итога.

ReportManualPart2_img71

На страницу добавились три бэнда с полями.

ReportManualPart2_img72

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

ReportManualPart2_img73

Теперь поля, в которых значение имело "не хороший" признак качества, пусты.

Сделаем, чтобы в пустых полях выводился текст. Для этого вновь воспользуемся инструментом Условное выделение. Выделим поле со значением и вызовем инструмент Условное выделение.

Добавим новое условие, установим тип Выражение, пропишем код:

Данные.ЗначениеПараметра==null

Данный код проверяет наличие значения колонки "ЗначениеПараметра". Если значения нет, то колонка равна null. В этом случае можно применять условное выделение – подменим текст поля.

ReportManualPart2_img74

Оформим отчет и запустим построение отчета:

ReportManualPart2_img75

В конце нам необходимо добавить график. Увеличим размер бэнда Итог данных и разместим на нем компонент Диаграмма типа "Линия". Перетащим параметры "Время" и "Значение параметра" из источника данных в окно настройки диаграммы, а затем настроим диаграмму - уберем подписи и повернем подписи заголовка Оси Х на 90 градусов.

ReportManualPart2_img76

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

ReportManualPart2_img77

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

Вернемся в режим проектирования отчета, и запустим редактирование диаграммы. В свойствах каждого ряда, в разделе Основные, в свойствах Данные есть настройка Показывать неопределенные. Установим данную настройку в "Нет" - теперь неопределенные значения (то есть значения равные null) на графике отображаться не будут.

ReportManualPart2_img78

Снова запустим построение отчета.

ReportManualPart2_img79

Теперь график построился корректно.

Примечание. Готовый отчет можно посмотреть в проекте "Обработка в отчетах" в объекте "Обработка признака качества" - "Отчет 2".