Суббота, 26.05.2018, 03:13
Приветствую Вас Гость | RSS

Bitrix программирование

Категории раздела
Статистика



Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Типы данных фильтров

Каталог статей

Главная » Статьи » Программирование

Типы данных фильтров

Число

Значения фильтра этого типа обрабатываются по следующим правилам: 

ОперацияЗначениеОписание
пустая строкаФильтр по полю применяться не будет. Будут выбраны все значения.
false 
Если перед полем этого фильтра указано отрицание (символ "!"), то будут выбраны все не пустые значения. 
Иначе будут выбраны пустые значения - NULL. 
"><" или "!><"должно быть массивом с двумя элементамиБудет выполнена проверка на попадание в диапазон заданный элементами массива значения фильтра. Включительно. Если перед полем этого указано отрицание (символ "!"), то будут выбраны значения не попадающие в диапазон. 
"=", "%", "?" или не заданабудет приведено в типу doubleval 
Проверка на точное совпадение значения. Если указано отрицание, то проверка будет выполнена на неравенство. 
">", "<", ">=", "<="будет приведено в типу doubleval"Больше", "меньше", "больше или равно" и "меньше или равно". Можно использовать "!" для отрицания условия.

Примечание

Если значение фильтра массив, то для каждого элемента будут формироваться соответствующие условия, а затем они будут объеденены по "ИЛИ". В случае отрицания условия будут объединяться по "И". 


Примеры использования

$arFilter = (
...
"ID" => false, //Не вернет ничего т.к. нет пустых ID
"!ID" => "", //вернет все т.к. фильтр не будет применен
"ID" => 0, //ID будет сравниваться с "0" (нулем)
"> array(1 ,100), //Все ID с 0 по 100 включительно
">ID" => "45", //Все ID больше 45-ти
"!%ID" => 33, //Все ID НЕ РАВНЫЕ 33
...
);
?>

Строка

Значения фильтра этого типа обрабатываются по следующим правилам:

Операция Значение Описание
пустая строка Фильтр по полю применяться не будет. Будут выбраны все значения.
"?" не пустая строка Значением фильтра должна быть строка которая может содержать сложную логику.
"%", "!%" не пустая строка Будет выполнен регистронезависимый поиск подстроки.
"><" или "!><" должно быть массивом с двумя элементами Будет выполнена проверка на попадание в диапазон заданный элементами массива значения фильтра. Включительно. Если перед полем этого указано отрицание (символ "!"), то будут выбраны значения не попадающие в диапазон.
false Если перед полем этого фильтра указано отрицание (символ "!"), то будут выбраны все не пустые значения.
Иначе будут выбраны пустые значения - NULL или те у которых длина равна нулю.
"=" или не задана будет приведено к верхнему регистру
Проверка на точное совпадение значения. Если указано отрицание, то проверка будет выполнена на неравенство. Проверка регистронезависимая.
">", "<", ">=", "<=" будет приведено к верхнему регистру "Больше", "меньше", "больше или равно" и "меньше или равно". Можно использовать "!" для отрицания условия. Не зависит от регистра.

Примечание

Если значение фильтра массив, то для каждого элемента будут формироваться соответствующие условия, а затем они будут объеденены по "ИЛИ". В случае отрицания условия будут объединяться по "И".

Примеры использования

$arFilter = (
...
"NAME" => false, //Не вернет ничего т.к. нет пустых NAME
"!NAME" => "", //вернет все т.к. фильтр не будет применен
"%NAME" => "отр", //вернет все NAME содержащую подстроку "отр" не зависимо от регистра
"?NAME" => "(мама || мачеха) && (папа || отчим)", //Все имют двух родителей
">NAME" => "э", //Все начинающиеся на Э, Ю, Я.
...
);
?>

Маска

Значения фильтра этого типа обрабатываются по следующим правилам:

Операция Значение Описание
пустая строка Фильтр по полю применяться не будет. Будут выбраны все значения.
"?" не пустая строка Значением фильтра должна быть строка которая может содержать сложную логику.
"%", "!%" не пустая строка Будет выполнен регистронезависимый поиск подстроки.
"><" или "!><" должно быть массивом с двумя элементами Будет выполнена проверка на попадание в диапазон заданный элементами массива значения фильтра. Включительно. Если перед полем этого указано отрицание (символ "!"), то будут выбраны значения не попадающие в диапазон.
false Если перед полем этого фильтра указано отрицание (символ "!"), то будут выбраны все не пустые значения.
Иначе будут выбраны пустые значения - NULL или те у которых длина равна нулю.
"="
будет приведено к верхнему регистру
Проверка на точное совпадение значения. Если указано отрицание, то проверка будет выполнена на неравенство. Проверка регистронезависимая.
">", "<", ">=", "<=" будет приведено к верхнему регистру "Больше", "меньше", "больше или равно" и "меньше или равно". Можно использовать "!" для отрицания условия. Не зависит от регистра.
не указана будет приведено к верхнему регистру Значение фильтра будет служить маской для отбора значений. "%" - любое количество любых символов, "_" - один любой символ.

Примечание

Если значение фильтра массив, то для каждого элемента будут формироваться соответствующие условия, а затем они будут объеденены по "ИЛИ". В случае отрицания условия будут объединяться по "И".

Примеры использования

$arFilter = (
...
"NAME" => false, //Не вернет ничего т.к. нет пустых NAME
"NAME" => "", //вернет все т.к. фильтр не будет применен
"NAME" => "А%", //вернет все NAME начинающиеся на "A"
"?NAME" => "(мама || мачеха) && (папа || отчим)", //Все имют двух родителей
">NAME" => "э", //Все начинающиеся на Э, Ю, Я.
...
);
?>

Дата

Значения фильтра этого типа обрабатываются по следующим правилам:

Операция Значение Описание
пустая строка Фильтр по полю применяться не будет. Будут выбраны все значения.
false
Если перед полем этого фильтра указано отрицание (символ "!"), то будут выбраны все не пустые значения.
Иначе будут выбраны пустые значения - NULL.
"><" или "!><" должно быть массивом с двумя элементами Будет выполнена проверка на попадание в диапазон заданный элементами массива значения фильтра. Включительно. Если перед полем этого указано отрицание (символ "!"), то будут выбраны значения не попадающие в диапазон.
"=", "%", "?" или не задана будет приведено к типу времени БД с помощью функции CharToDateFunction Проверка на точное совпадение значения. Если указано отрицание, то проверка будет выполнена на неравенство.
">", "<", ">=", "<=" будет приведено к типу времени БД с помощью функции CharToDateFunction "Больше", "меньше", "больше или равно" и "меньше или равно". Можно использовать "!" для отрицания условия.

Примечание

Если значение фильтра массив, то для каждого элемента будут формироваться соответствующие условия, а затем они будут объеденены по "ИЛИ". В случае отрицания условия будут объединяться по "И".


Примеры использования

//Все активные элементы это те у которых ACTIVE_FROM не задано или меньше чем сейчас
//при не заданной ACTIVE_TO или ACTIVE_TO больше чем сейчас
$arFilter = (
"<=DATE_ACTIVE_FROM" => array(false, ConvertTimeStamp(false, "FULL")),
">=DATE_ACTIVE_TO" => array(false, ConvertTimeStamp(false, "FULL")),
);
?>


Источник: http://1c-bitrix.ru
Категория: Программирование | Добавил: Shak (04.08.2010)
Просмотров: 5629 | Теги: arFilter, Типы данных фильтров, API | Рейтинг: 0.0/0
Поиск

Shak © 2018
Копирование материала без указания автора и ссылки на сайт запрещается.
Если вы разместили материал у себя на сайте обязательно свяжитесь со мной shakleinserg{собака}gmail.com
Создать бесплатный сайт с uCoz