EugeneBoss3

Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Цитата: То есть при вводе значения должны фильтроваться? я правильно понял? | Совершенно правильно Добавлено: Создание индексов в рунтайме для Accuracer (код приводил на стр.84) вроде разобрался. Привожу пример с реализацией: ==================================================== procedure TForm1.DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh); var sFieldName, sCurIdx: string; begin sFieldName := Column.FieldName; if (Column.Title.SortMarker = smNoneEh) then Column.Title.SortMarker:= smDownEh; dsUsers.Enabled := False; try with atbUsers do begin Close; Exclusive := True; Open; // очистить список индексов DeleteAllIndexes; // создать новые индексы with IndexDefs do begin AddIndex('FieldIdxAsc',sFieldName,[ixCaseInsensitive]); AddIndex('FieldIdxDes',sFieldName,[ixDescending,ixCaseInsensitive]); end; Close; Exclusive := False; case Column.Title.SortMarker of smDownEh: begin Column.Title.SortMarker:= smUpEh; sCurIdx := 'FieldIdxAsc'; end; smUpEh: begin Column.Title.SortMarker:= smDownEh; sCurIdx := 'FieldIdxDes'; end; else sCurIdx := 'PrimaryKey'; end; end; finally atbUsers.IndexName := sCurIdx; dsUsers.Enabled := True; if not (atbUsers.Active) then atbUsers.Active := True; atbUsers.First; end; end; ========================================================= |