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

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

Фильтр Query [D5, dBase, FoxPro]


stoper ©   (2003-10-03 13:17:00) 

Я устонавливаю фильтрацию по какому нибудь полю все нормально.Но как только я устонавливаю фильтрацию снова, то она действует только на данные предидущего отфильтрованого набора.Т.е. даные которые не подходят под условия первой фильтрации теряются.
Что уже только не делал. На даном этапе имеем следущий код

procedure TForm3.Button1Click(Sender: TObject);
begin
if Query1.Filtered then Query1.Filtered:=false;
Query1.Filtered:=true;
end;

procedure TForm3.Query1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept:=(DataSet["sum1"]>=strtofloat(form3.Edit1.Text)) and (DataSet["sum1"]<=strtofloat(form3.Edit2.Text));
end;


Johnmen   (2003-10-03 14:55:00) [1]

> [3]

Ну попробуй DisableControls EnableControls


SPIRIT   (2003-10-03 14:52:00) [2]


procedure TForm3.Button1Click(Sender: TObject);
begin
if Query1.Filtered then Query1.Filtered:=false;
Query1.Filtered:=true;
end;

замени

procedure TForm3.Button1Click(Sender: TObject);
begin
Query1.Filtered:=false;
// здесь условие фильтра ....
Query1.Filtered:=true;
end;


так нас в универе учили :)


Rem   (2003-10-03 14:32:00) [3]

>> Rem, ты бы не умничал

И осталась баба с разитым корытом...


stoper   (2003-10-03 14:16:00) [4]

Rem, ты бы не умничал,запрос там не архисложный ну и не простой.Выборка идет 15 сек.Фильтр в наборе срабатывает первый раз в мгновение ока.
2 Никакие обновления не помогают . Не ужто никто не знает.


Johnmen   (2003-10-03 13:47:00) [5]

>...то она действует только на данные предидущего отфильтрованого набора...

Ты это видишь где-то ? Скорее всего - да. Тогда просто обнови отрисовывание контрола, на котором видишь.


Rem   (2003-10-03 13:32:00) [6]

А вообще... перемести условия отбора из OnFilterRecord в условия запроса.


Rem   (2003-10-03 13:31:00) [7]

Мне особо понравился конструктив:
if Query1.Filtered then Query1.Filtered:=false;
Query1.Filtered:=true;

Обнови запрос:
Query1.Refresh;


Наверх

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