Как добиться верной работы фильтра на запросах и на неиндексированных таблицах |
Previous Top Next |
Автор: Nomadic
(Т.е. при работе программы наблюдалась следующая картина: в результате очередной фильтрации оставалось видно 4 записи из восьми. Добавляем букву к фильтру, остается, допустим, две. Убираем букву, которую только что добавили, в гриде все равно видно только две записи)
Эта проблема была в Delphi 3.0 только на TQuery, а в Delphi 3.01 появилась и в TTable. Лечится так (простой пример):
Code: |
procedure TMainForm.Edit1Change(Sender: TObject); begin if length(Edit1.Text) > 0 then begin Table1.Filtered := TRUE; UpdateFilter(Table1); end else Table1.Filtered := FALSE; end;
procedure TMainForm.UpdateFilter(DataSet: TDataSet); var FR: TFilterRecordEvent; begin with DataSet do begin FR := OnFilterRecord; if Assigned(FR) and Active then begin DisableControls; try OnFilterRecord := nil; OnFilterRecord := FR; finally EnableControls; end; end; end; end; |
©Drkb::02627
Взято с http://delphiworld.narod.ru