Programming: Delphi


Иллюстрированный самоучитель по Delphi 7 для профессионалов



Фильтрация



Помимо обычной фильтрации , основанной на свойствах Filter, Filtered и методе-обработчике onFilterRecord, класс TCustomADODataSet предоставляет разработчику дополнительные возможности.

Свойство

    TFilterGroup = (fgUnassigned, fgNone, fgPendingRecords, fgAffectedRecords, fgFetchedRecords, fgPredicate, fgConflictingRecords); 

    property FilterGroup: TFilterGroup;

задает групповой фильтр для записей, основываясь на информации о состоянии каждой записи набора данных, подобно рассмотренному выше свойству RecordStatus.

Фильтрация возможна по следующим параметрам:

  •  fgUnassigned.— фильтр не задан;
  •  fgNone — все ограничения, заданные фильтром, снимаются, отображаются все записи набора данных;
  •  fgPendingRecords — отображаются измененные записи, несохраненные в хранилище данных при вызове метода updateBatch или cancelBatch;
  •  fgAffectedRecords — показываются записи, обработанные при последнем сохранении в хранилище данных;
  •  fgFetchedRecords — имеем записи, полученные при последнем обновлении из источника данных;
  •  fgPredicate — видны только удаленные записи;
  •  fgConfiictingRecords — отображаются модифицированные записи, при сохранении которых в хранилище данных возникла ошибка.

Для того чтобы групповая фильтрация заработала, необходимы два дополнительных условия. Во-первых, фильтрация должна быть включена — свойство Filtered должно иметь Значение True

Во- вторых , свойство LockType должно иметь значение ItBatchOptimistic.

    with ADODataSet do begin

    Close;

    LockType := ItbatchOptimistic;

    Filtered := True;

    FilterGroup := fgFetchedRecords;

    Open;

      end;

Метод

    procedure FilterOnBookmarks(Bookmarks: array of const);

включает фильтрацию по существующим закладкам. Для этого предварительно необходимо при помощи метода GetBookmark установить закладки на интересующих записях. При вызове метода FilterOnBookmarks автоматически очищается свойство Filter, а свойству FilterGroup присваивается значение gUnassigned.




Назад | Оглавление | Вперёд




При перепечатке любого материала с сайта, видимая ссылка на источник www.warayg.narod.ru и все имена, ссылки авторов обязательны.

© 2005
 

Hosted by uCoz