Form.QuickFilters

From SunFlurry wiki
Revision as of 09:16, 16 July 2020 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  QuickFilters (Свойства элементов)
Объект:Форма
Статус разработки: Реализована
Тип:Атрибут
Обращение к БД:Нет
Доступность:Только чтение
Визуальность:Да

Атрибут получает список, наименованиями элементов которого являются столбцы таблицы, в которых пользователь ввел значения в быстрый фильтр отбора (быстрые фильтры отображаются в заголовках столбиков таблицы, к которым они были применены), значения элементов заполнены текстовыми значениями фильтров. Если ни один из столбцов не содержит фильтров, будет возвращен пустой список. Обычно функция может использоваться в обработчике события OnBeforeLoadElements, когда требуется наложить фильтры, заданные пользователем на список элементов, загружаемых программно.

Синтаксис

Form.QuickFilters:<Список с текущими быстрыми фильтрами столбцов таблицы, связанной с базой данных (LIST)>

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

Возвращает значение типа список.

Примеры

//Фрагмент события OnBeforeLoadElements для таблицы MainTab, где программа сама загружает список элементов
...

aList:=Form.MainTab.QuickFilters;
//Единственный возможный столбик с фильтром в этой таблице -- "ГруппаНоменклатуры"
//Получить его фильтр
СтрГруппа:=Uppercase(aList.GetByName("ГруппаНоменклатуры"));
//bList -- подготовленный список элементов для загрузки в таблицу MainTab
MainTab.Lock();
Try
  //Копируем список в основную таблицу
  bList.CopyTo(MainTab,1,bList.Size(),"@ELEMENT");
  MainTab.Select();
  While MainTab.Next() Do
    Эл:=MainTab.Get(MainTab.CurLine,"@ELEMENT");
    //Заполняем дополнительные столбики таблицы
    MainTab.isFolder:=Эл.ГруппаНоменклатуры.isFolder();
    MainTab.ГруппаНоменклатуры:=Эл.ГруппаНоменклатуры;
    MainTab.Сумма:=Эл.Сумма;
    MainTab.Процент:=Эл.Процент;
    //Накладываем быстрый фильтр, если он был установлен
    If СтрГруппа<>"" Then
      Стр:=Uppercase(Эл.ГруппаНоменклатуры);
      If Pos(СтрГруппа,Стр)=0 Then
        MainTab.CurLine:=MainTab.CurLine-1;
        MainTab.Remove(MainTab.CurLine+1);
        Continue;
      EndIf;
    EndIf;
  EndDo;
  //Сортируем таблицу с учетом пожеланий пользователя
  Стр:="isFolder-"+?(Form.MainTab.SortString="","",","+Form.MainTab.SortString);
  MainTab.Sort(Стр);
Finally
  MainTab.Unlock();
EndTry;