Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Фильтр строк в отчете  (Прочитано 2635 раз)

KANT

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Фильтр строк в отчете
« : 12 Мая 2023, 18:30:25 »
Добрый день!
Необходимо в отчете сообщений отобразить строки с колонкой Объект = CalcPercentTank_vrRepSNMB. Добавляю фильтр. Переменная фильтра vrRepSNMB передается из СКАДА. Передается корректно - проверено на текстовом поле. Но в фильтре не срабатывает (выводит пустой отчет). Если в фильтре прописать прямо троку Объект =  CalcPercentTank_1 то фильтр работает (выводит строки только с CalcPercentTank_1). Подскажите пожалуйста в чем проблема. Скриншот прилагаю
« Изменён: 15 Мая 2023, 07:08:47 от KANT »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1400
    • Просмотр профиля
Re: Фильтр строк в отчете
« Ответ #1 : 15 Мая 2023, 15:50:45 »
Здравствуйте.

Настроить фильтр приведенным на Вашем скриншоте способом не получится. Нужно формировать название объекта (CalcPercentTank_X) в скаде и записывать его в строковую переменную vrRepSNMB перед построением отчета. Затем в отчете создать Фильтр -> Выражение, с условием (см. скриншот во вложении):
Код
Аварийные_сообщения.Объект == vrRepSNMB

KANT

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Фильтр строк в отчете
« Ответ #2 : 16 Мая 2023, 06:37:45 »
Да, так работает. Спасибо. Результат отчета во вложении.
1. Т.е. переменные в фильтрах работают только через выражения?
2. Возможно ли также через выражения реализовать фильтр по тексту сообщения: Аварийные_сообщения.Текст сообщения содержит 'Т3:'

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 285
    • Просмотр профиля
    • Simple-Scada
Re: Фильтр строк в отчете
« Ответ #3 : 16 Мая 2023, 11:40:52 »
Здравствуйте.

Цитировать
Т.е. переменные в фильтрах работают только через выражения?
Да.

Возможно ли также через выражения реализовать фильтр по тексту сообщения: Аварийные_сообщения.Текст сообщения содержит 'Т3:'
В скриптах редактора отчётов используется язык программирования С#, поэтому можно использовать доступные для С# методы работы со строками. Например, "Contains" - проверяет, содержится ли заданная подстрока в строке:
Код
Аварийные_сообщения.Текст_сообщения.Contains(vrRepSNMB)
« Изменён: 16 Мая 2023, 11:51:54 от Simple_Scada »