Содержание
11. Фильтр формы
Фильтром формы можно управлять с помощью свойства Filter класса TFilterObject. Пример настройки фильтра:
var FF: TFilterField; begin Self.Filter.Clear; // Удаляем все поля из фильтра FF := Self.Filter.AddField('Количество'); // Добавляем поле фильтра FF.Values.Add('2 .. 5'); // Для чисел, дат и времени значение задается как диапазон FF.Values.Add('10 .. '); // Если нижней или верхней границы нет, то ставится пробел FF := Self.Filter.AddField('Название'); FF.Values.Add('Мука'); FF.IsNot := True; // Ищем все, кроме муки FF := Self.Filter.AddField('Клиент'); // Если добавляем объект, FF.Values.Add(<ID записи>); // то значением должно быть id записи, число. Self.Refresh; end;
Фильтром можно управлять до и после открытия набора данных. Пример чтения фильтра:
var FF: TFilterField; begin FF := Self.Filter.FindField('Количество'); if FF.Values.Count > 0 then begin Debug(FF.Value[0]); Debug(FF.EndValue[0]); end; end;
TFilterObject
Краткое описание методов и свойств фильтра TFilterObject:
Свойство | Описание |
---|---|
function AddField(const FieldName: String): TFilterField | Метод добавляет поле в фильтр |
procedure Clear | Метод удаляет все поля из фильтра. |
procedure DeleteField(F: TFilterField) | Метод удаляет из фильтра поле. В качестве параметра передается объект поля фильтра. |
function FindField(const FieldName: String): TFilterField | Ищет в фильтре поле с указанным именем и возвращает объект поля. Если объект не найден, возвращает nil. |
property Count: Integer [r] | Возвращает количество полей в фильтре. |
property Fields[Index: Integer]: TFilterField [r] default | Доступ к полю фильтра по индексу. Это свойство по умолчанию, т. е. название свойства можно не писать: Self.Filter[1].Value := … |
TFilterField
Краткое описание свойств поля фильтра TFilterField:
Свойство | Описание |
---|---|
property FieldName: String [r] | Имя поля. |
property IsNot: Boolean [rw] | Флажок «Не». |
property IsNull: Boolean [rw] | Флажок «Пусто». |
property Values: TStringList [r] | Доступ к значениям поля фильтра. |
property Value[Index: Integer]: String [r] | Доступ к значению поля или к начальному значению, если это диапазон (число, дата, время). |
property EndValue[Index: Integer]: String [r] | Доступ к конечному значению диапазона. |