AstraRegul
Релиз 2024.08.31.00
×

SetAdvancedFilterAsJson

 
Применяет расширенный фильтр отображения (в формате JSON) к указанному столбцу таблицы сообщений.
 
bool SetAdvancedFilterAsJson(string ColumnID, string FilterExpr)
 

Параметры

 
Параметр
Тип
Описание
ColumnID
string
Идентификатор столбца
FilterExpr
string
Условия фильтрации. Задаются в виде строки - объекта JSON. Правила формирования условий фильтрации описаны ниже
 

Возвращаемое значение

 
Значение
Описание
true
Расширенный фильтр отображения успешно установлен
false
Неудачный разбор выражения фильтрации, фильтр не установлен
 

Правила формирования условий фильтрации

 
Условие фильтрации представляет собой объект JSON. Объект может быть одиночным ({"ключ": "значение"}) или составным (состоящим из нескольких объектов).
 
Составной объект формируется с помощью:
логических операций:
конъюнкция - and или &)
дизъюнкция - or или |)
инверсия - not или !)
операций сравнения:
больше - >
больше либо равно - >=
меньше - <
меньше либо равно - <=
соответствует - ==
не соответствует - !=
 
В зависимости от используемой операции составной объект JSON может иметь формат:
{"and": [ARRAY]}
{"or": [ARRAY]}
{ "not": { OBJECT } }
{ "операция сравнения": { VARIABLE } }
 
Операцию сравнения == можно не указывать. В таком случае объект будет иметь формат { VARIABLE }
 
Формат
Описание
VARIABLE
Переменная. Имеет структуру: <имя переменной>: <значение переменной>
OBJECT
Переменная или составной объект JSON любого из указанных выше форматов
ARRAY
Массив. Может состоять из переменных и составных объектов JSON (любого формата) в различных комбинациях
 

Примеры

 
//Отфильтровать данные по содержимому столбца message. Показать события, содержащие текст "поставлен" или "снят". Вывести результат выполнения функции в текстовое поле:
Filter: string = "{{ "or": [{"": "*поставлен*"},{"": "*снят*"}]}"
Result: bool = Alarms_1.SetAdvancedFilterAsJson(message, Filter);
TextEdit_1.Text = String.ToString(Result);
 
Отфильтровать данные по содержимому столбца severity. Показать события с важностью от 100 до 300. Вывести результат выполнения функции в текстовое поле:
Filter: string = "{"and": [{">=": {"": 100}},100}}, {"<=": {"": 300}}]}"
Result: bool = Alarms_1.SetAdvancedFilterAsJson(severity, Filter);
TextEdit_1.Text = String.ToString(Result);