Авторизация


Фильтрация данных

Вернуться Содержание

Поле фильтра на страницах нашего сайта - мощное средство фильтрации (отбора) данных. Если вы просто введете в него несколько слов, то будут найдены позиции, в текстовых полях которых встречаются все введенные слова. Слова при поиске регистронезависимы. То есть аспирин, АСПИРИН и Аспирин, с точки зрения системы, одно и то же слово.

Если первым символом, в поисковой фразе, будет =, то будет производиться поиск по поисковой фразе целиком, без разбиения по словам. Но в любом месте текста. Если первым символом будет %, то поиск будет подобен символу =, но с начала текста.

Знак !, перед любыми словами в поисковой фразе, означает, что из результата следует исключить данные, в которых встречаются слова, помеченные этим знаком.

Расширенный фильтр

На некоторых страницах под полем ввода поисковых фраз встречается расширенный фильтр. Кликнув по нему - откроете подокно, которое поможет составить поисковую фразу, исходя из семантики и свойств отдельных полей набора данных. Текстовые поля расширенного фильтра ищут данные в конкретных полях, но по принципу знака = (см.выше).

Так же не забывайте про возможности броузера по поиску данных на текущей странице. Обычно форма для поиска вызывается клавишами [Ctrl+F].

Фильтрация SQL

Значительно большие возможности по фильтрации данных дает возможность использования условий SQL-запросов. В этом режиме фильтр начинает работать, когда в поле ввода встречается первый символ $. Для использования этой возможности нужно знать имена полей в наборе данных. Указываются они латинскими буквами и символами подчеркивания. Когда в наборе данных учавствует несколько таблиц, то имена полей могут быть в них одинаковыми, соответственно имена нужно уточнять и в условии, указывая "имя_таблицы.имя_поля". Условия задаются путем сравнения знаками <, >, =, а так же некоторыми командами (функциями). Числовые значения могут указываться напрямую - строковые и даты берутся в 'одинарные кавычки'. Даты хранятся в таблицах в формате: 'yyyy-mm-dd h:m:s' или 'yyyy-mm-dd'. Если используется сложное условие с логическими операторами and-or, то можно использовать скобки для указания приоритета условий.

Для изучения данного вопроса будем использовать примеры:

  • Вывести только те товары из справочника товаров, остаток которых больше нуля.
    Для этого вводим в поле фильтра: $clv>0
  • Вывести только те товары из справочника товаров, остаток которых, с учетом ненайденных позиций больше нуля.
    Для этого вводим в поле фильтра: $clv-clv_nfound>0
  • Вывести только те товары из справочника товаров, остаток которых больше нуля и у которых нет фотографий.
    Для этого вводим в поле фильтра: $clv>0 and photoc<=0
  • Вывести только накладные списания из справочника документов, которые были созданы после 31 марта 2011г.
    Для этого вводим в поле фильтра: $doc.type=4 and crdate>'2011-03-31'
  • Вывести только те накладные из справочника документов, в информации которых встречаются инициалы "А.Я." и они были созданы в феврале 2011г.
    Для этого вводим в поле фильтра: $position('а.я.' in doc.info)>0 and crdate>='2011-02-01' and crdate<'2011-03-01'

Смотрите так же: