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);
|