Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: CL | DM;

Вниз

Как осуществить динамическую фильтрацию?   Найти похожие ветки 

 
-=DeMoH=- ©   (2003-05-05 00:27) [0]

Юзаю БД из ACCESS с помощью ADO. Как мне сделать так, чтобы DBGrid показывал только те записи, которые начинаются со строки заданной в Edit?

procedure TForm1.Edit3Change(Sender: TObject);
begin
........
end;


 
-=DeMoH=- ©   (2003-05-05 00:31) [1]

И еще вопрос: как мне сделать так, чтобы в DBGrid"е рядом с каждой строкой стоял CheckBox и пользователь мог таким образом отметить несколько строк, а затем по нажатии чего-либо енто все перекидывалось в каку-нибудь новую таблицу для просмотра или сохранения в файл?


 
sunrider   (2003-05-05 00:40) [2]

Тут можно пользоваться либо свойством Table.Filter:="pole=""+Edit1.Text+""";
Table.Filtered:=True;
(то же для Query)
Или событием OnFilter
Accept=DataSet["pole"]=Edit1.Text;
А по поводу CheckBox в DBGrid - объекты можно встраивать,
но можно использовать свойство DBGrid.SelectedRows. Только
включить в DBGrid.Options свойство - MultiSelect. После этого
организуешь цикл типа
for i:=0 to DBGrid.SelectedRows.Count-1 do
begin
Table.GotoBookmark(pointer(DBGrid.SelectedRows[i]));
<оператор>
end;




 
-=DeMoH=- ©   (2003-05-05 01:47) [3]

Попробовал, но ничего не получается: прога компилится без вопросов, но вот при вводе чего-угодно в Edit выдается ошибка:
1)Несовпадение типов;
2)Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом;


 
Babay ©   (2003-05-05 07:54) [4]

-> Тут можно пользоваться либо свойством Table.Filter:="pole=""+Edit1.Text+""";
это по моему несовсем верно
для ADOQuery у меня это делается так

MyQuery.Filter:="pole like("""+Edit1.Text+"%"")";

для таблице по идее должно быть так же...



 
-=DeMoH=- ©   (2003-05-05 12:34) [5]

Меня у совсем запутали все эти галочки и кавычки! Приведите конкретный пример для, например, поля "Начальный капитал" !
И желательно для ADOTable (причем нужно сделать так, чтобы этот метод обрабатывался при каждом изменении значения поля Edit и соответственно менялась информация в DBGrid!


 
NickBat ©   (2003-05-05 13:05) [6]

Экий вы батенька ленивец! :))

MyQueryFilter:="nachkap like "+#39+"%"+Trim(Edit.Text)+"%"+#39;
Причем это поставить в событии onChange для Edit


 
Babay ©   (2003-05-05 13:08) [7]

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text<>"" then
AdoTable1.Filter:="[Начальный капитал] Like ("""+Edit1.Text+"%"")"
else AdoTable1.Filter:="";
end;

Пробел до и после слова Like ОБЯЗАТЕЛЕН!!!
у меня вот так работает (специально прожку откатал)
Дальше подробнее смотри Like в языке SQL


 
-=DeMoH=- ©   (2003-05-05 13:10) [8]

Интересный пример, а кстати зачем нужен символ "%"? А что будет, если в значении полей могут быть пробелы (типа зачем Trim)?
P.S.: Сейчас проверю, мб и заработает


 
WarLord ©   (2003-05-05 13:15) [9]

% обозначает любое сочетание символов


 
-=DeMoH=- ©   (2003-05-05 13:19) [10]

Написал, ошибок не выдает, но почему-то ничего и не фильтрует!
Может что-нить упустил (пробовал и DBGrid1.Refresh)
P.S.:Независимо от того, что вводится в поле, DBGrid по прежнему показывает одно и то же (но событие OnChange выполняется корректно).


 
-=DeMoH=- ©   (2003-05-05 13:22) [11]

а "Like" это типа вроде условия на нестрогое равенство?


 
WarLord ©   (2003-05-05 13:23) [12]

Table.Filtered:= True поставил?


 
sniknik ©   (2003-05-05 13:25) [13]

> но почему-то ничего и не фильтрует!

AdoTable1.Filtered:= true; ??


 
-=DeMoH=- ©   (2003-05-05 13:26) [14]

Ooops... sorry...

Все заработало!!!

Спасибо всем, скоро еще че-нить спрошу :-])



Страницы: 1 вся ветка

Текущий архив: 2003.05.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-83597
V-A-V
2003-05-14 12:38
2003.05.26
Сохранение ветки реестра в файл


3-83376
Belkova
2003-05-05 21:23
2003.05.26
Выделение в DBGrid


6-83629
dimonich
2003-03-24 15:17
2003.05.26
Отрубить инет через опр. время


3-83341
Нов
2003-05-05 15:08
2003.05.26
Привет всем,с наступающим праздником,мне нужен совет


14-83707
maksimenkon
2003-05-06 13:07
2003.05.26
Создание инсталяции