Правильная ссылка на эту страницу
http://az-design.ru/Support/SoftWare/Delphi/D3/SB36OnFilterRecord.shtml

Глава 36. TDataSet.OnFilterRecord

Событие OnFilterRecord

Затрагиваемые объекты TDataSet
Назначение Событие OnFilterRecord ссылается на процедуру обработчика событий, в которой можно указать специализированную обработку, выполняемую с целью фильтрования записей.
Объявление Туре TFilterRecordEvent = procedure(DataSet: TDataSet; var Accept: Boolean) of object;
property OnFilterRecord; TFilterRecordEvent;
Пример синтаксиса
// Присвоить или отменить присвоение обработчика событий OnEditError
// в  соответствии с  флажком

procedure TTDataSetTestForm.OnFilterRecordCheckBoxClick(Sender:TObject);
begin
   if OnFilterRecordCheckBox.Checked
     then CustomerTable.OnFilterRecord := CustomerTableFilterRecord
     else CustomerTable.OnFilterRecord := Nil;

end;
 
//  Обработчик событий OnFilterRecord

procedure TTDataSetTestForm.CustomerTableFilterRecord(DataSet:TDataSet);
var
   Accept: Boolean;

Begin
   Accept := Not CustomerTableAddr2.IsNull;

end;
Описание        Обработчик событий OnFilterRecord вызывается в ситуации, когда фильтрование записей включено (свойство Filtered установлено в True или имеет место обращения к методам FindFirst, FindLast, FindNext или FindPrior). Любые условия филь трования выражаются кодированием процедуры обработчика событий OnFilterRecord и установкой параметра Accept (передаваемого по ссылке) в True или в False в соответствии с тем, удовлетворяется ли условие или нет. Обработчик включается один раз для каждой записи, считываемой в TDataSet. Заметьте, что если существует какое-либо условие фильтрования, определенное свойством Filter, то условие фильтрования, выражаемое процедурой обработчика событий OnFilterRecord, оценивается после применения условия фильтрования. Таким образом легко объединить обычные выражения фильтрования с процедурой обработчика событий OnFilterRecord. На практике выглядит так, будто два условия соединены логическим AND. Имейте в виду, что поскольку процедура обработчика OnFilterRecord вызывается один раз для каждой записи, считываемой в TDataSet, обработчик должен быть как можно короче и эффективнее для минимизации возможного снижения производительности.

[Свойство Active] [Метод ActiveBuffer] [Событие AfterCancel] [Событие AfterClose] [Событие AfterDelete] [Событие AfterEdit] [Событие AfterInsert] [Событие AfterOpen] [Событие AfterPost] [Метод Append] [Метод AppendRecord] [Метод ApplyUpdates] [Свойство AutoCalcFields] [Свойство BOF] [Событие BeforeCancel] [Событие BeforeClose] [Событие BeforeDelete] [Событие BeforeEdit] [Событие BeforeInsert] [Событие BeforeOpen] [Событие BeforePost] [Свойство Bookmark] [Свойство CachedUpdates] [Свойство CanModify] [Метод Cancel] [Метод CancelUpdates] [Метод CheckBrowseMode] [Метод ClearFields] [Метод Close] [Метод CommitUpdates] [Метод ControlsDisabled] [Метод CursorPosChanged] [Свойство DataSource] [Свойство DefaultFields] [Метод Delete] [Метод DisableControls] [Метод Edit] [Метод EnableControls] [Свойство EOF] [Свойство ExpIndex] [Метод FetchAll] [Метод FieldByName] [Свойство FieldCount] [Свойство FieldDefs] [Свойство FieldValues] [Свойство Fields] [Свойство Filter] [Свойство FilterOptions] [Свойство Filtered] [Метод FindField] [Методы FindFirst] [Методы FindLast] [Методы FindNext] [Методы FindPrior] [Метод First] [Свойство Found] [Метод FreeBookmark] [Метод GetBookmark] [Метод GetCurrentRecord] [Метод GetFieldList] [Метод GetFieldNames] [Метод GotoBookmark] [Свойство Handle] [Метод Insert] [Метод InsertRecord] [Метод IsLinkedTo] [Свойство KeySize] [Метод Last] [Свойство Locale] [Метод Locate] [Метод Lookup] [Свойство Modified] [Метод MoveBy] [Метод Next] [Событие OnCalcFields] [Событие OnDeleteError] [Событие OnEditError] [Событие OnFilterRecord] [Событие OnNewRecord] [Событие OnPostError] [Событие OnServerYield] [Событие OnUpdateError] [Событие OnUpdateRecord] [Метод Open] [Метод Post] [Метод Prior] [Свойство RecNo] [Свойство RecordCount] [Свойство RecordSize] [Метод Refresh] [Метод Resync] [Метод RevertRecord] [Метод SetDetailFields] [Метод SetFields] [Свойство State] [Метод UpdateCursorPos] [Свойство UpdateObject] [Метод UpdateRecord] [Свойство UpdateRecordTypes] [Метод UpdateStatus] [Свойство UpdatesPending]


<<< Пред. Оглавление
Начало раздела
След. >>>




Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:55 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/SoftWare/Delphi/D3/SB36OnFilterRecord.shtml