Редактор условий выражений, Оператор In

Здравствуйте!
В Правилах форматирования нужно сделать условие проверки значения, что оно входит в список

Например:

[Среднесуточные значения.ГВС 1 (Среднесуточные значения).AvgDayP1 - среднесуточное давление в подающей магистрали] In (4.08,5.10,6.12);

Скажите правильно ли написано, потому что хотя и никакой нет ошибки при запуске отчета, но оно не отрабатывает

Добавлю что это делается в сводном отчете по объектам, Выбран Архив потреблений и интеграторов, условие выше указал.
123.png

AvgDayP1 - это вещественное число типа double (точность представления 15 значащих цифр). Вы сравниваете только с точностью до двух знаков после запятой, поэтому In не работает. Воспользуйтесь функцией Round() для округления значения AvgDayP1 до нужной точности.
Для вещественных чисел оператор In лучше не использовать, т.к. возможны ошибки округления.

Спасибо! А что тогда использовать, дабы не городить IIf для каждого из значений?

Не буду создавать отдельную тему, вопрос про редактор выражений

Каким образом условие составить

Iif([ГВС 1 .IsDoublePipeHotWaterSystem - признак 2-х трубной ГВС] == True, 
Round([Архивы потреблений и интеграторов.Среднесуточные значения.ГВС 1 (Среднесуточные значения).AvgDayT2 - среднесуточная температура в обратной магистрали],2)  <= 0.00 , 'тупик')

В данном случае выводится сообщение “Условие должно быть логическим”

Мне нужно проверить что система ГВС 2х трубная, если да, то проверить значение T2 на 0 иначе вывести в ячейку ТУПИК

  1. Round() возвращает округленное значение, поэтому должно использоваться в следующей связке:
    Iif(Round(<Значение>) in (<Список>), <ДействиеTrue>, <ДействиеFalse>)

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

Без документации по написанию скриптов сложновато очень, большая просьба помочь.

Если мы выбираем много объектов и выводим сводную таблицу, мне нужно получать параметр IsDoublePipeHotWaterSystem системы ГВС для каждого объекта и проверять если 2 трубы то дополнительно проверять параметр T2 если он ноль, то красным цветом выделить, если трубы - 1, то выводить в ячейку T2 слово “Тупик”.
Сводный отчет по датчикам T,P (Киров).lersreport (512 KB)

Данных по T2 может не быть, но если они есть, то не понятно в каком случае T2 = 0.
Для проверки отсутствия данных используется функция IsNul().
Создайте вычисляемое поле для вывода значения в колонке T2. Например:

Iif( Not [Точки учета.ГВС 1 .IsDoublePipeHotWaterSystem - признак 2-х трубной ГВС], 'Тупик', [Архивы потреблений и интеграторов.Среднесуточные значения.ГВС 1 (Среднесуточные значения).AvgDayT2 - среднесуточная температура в обратной магистрали])

А для раскраски создайте для T2 правило форматирования например c таким условием:

[Точки учета.ГВС 1 .IsDoublePipeHotWaterSystem - признак 2-х трубной ГВС]  And (IsNull([Архивы потреблений и интеграторов.Среднесуточные значения.ГВС 1 (Среднесуточные значения).AvgDayT2 - среднесуточная температура в обратной магистрали])  Or [Архивы потреблений и интеграторов.Среднесуточные значения.ГВС 1 (Среднесуточные значения).AvgDayT2 - среднесуточная температура в обратной магистрали] == 0)

T2 = 0 может быть если датчик вышел из строя или не установлен. Спасибо Вам!