Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Фильтрация таблицы dBase [D5, D6, dBase, FoxPro, Paradox]


Виталий Панасенко ©   (2004-12-23 09:23:00) 

Есть форма, на которой лежат компоненты TEdit, TDBGrid, TTable, TDataSourse ... Последние три соответственно связаны для отображения... В обработчике OnChange TEditа написан код Table1.Filtered := True;
Больше нчего.
В обработчике OnFilterRecord Table1 имеем код типа
Accept := Pos(Edit1.Text, dataSet['FILTER_FIELD'])>0;

Проблема в чем: при работе с форматом dBase, если менять значение Edit1 на заведомо не встречающуюся подстроку в поле фильтрации, получаем пустую сетку.. Так и должно быть.. НО! при исправлении значения на заведомо встречающуюся  -все равно пусто... с Paradox все реагирует мгновенно и адекватно...
При чем не важно, есть индексы или нет - глюк остается...
Пробовал как через БДЕ так и через АДО... Помогает только переоткрытие...


Johnmen   (2004-12-23 10:56:00) [1]

Accept := (Edit1.Text='') or
 (Pos(Edit1.Text, Table1.FieldByName('F').AsString)>0);


Но дело не в этом. А в том, чтобы инициировать перерисовку грида после изменения условия фильтрации...


Виталий Панасенко   (2004-12-23 09:46:00) [2]

Не помогло... :-(
вот весь OnFilterRecord(много лишнего - уже не знаю что и делать):
 Accept := True;
 if Edit1.Text<>'' then
  begin
    if not Table1.FieldByName('F').IsNull then
      Accept := Pos(Edit1.Text, Table1.FieldByName('F').AsString)>0
     else
       Accept := False;
  end
 else
  Accept := True;


Johnmen   (2004-12-23 09:28:00) [3]

>В обработчике OnChange TEditа написан код Table1.Filtered := True;

А так
Table1.DisableControls;
//Table1.Filtered := False;
Table1.Filtered := True;
Table1.EnableControls;


Наверх

Титульная страница Поиск, карта сайта Написать письмо