Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2008, 15:23   #1
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию фильтр в DBGrid

в DBGrid необходимо реализовать возможности Access.:
1. Где стоит курсор, при нажатии фильтр, фильтруются записи по этому значению.
2. Над какой колонкой был произведен вызов всплывающего меню при вводе значение в контестном меню (Edit должен быть в контестном меню) фильтруется по этому значению, т.е если над колонкой ФИО то фильтруется по фамилии, или если над колонкой Дата, то по значению дата.
ГОСЕАН вне форума Ответить с цитированием
Старый 01.02.2008, 15:27   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Фильтр применяется не к DBGrid, а к DataSet, чьи данные он отображает.
Смотрите это свойство - FILTER у DataSet (что у вас там - Table или Query)...
mihali4 вне форума Ответить с цитированием
Старый 02.02.2008, 14:26   #3
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Фильтр применяется не к DBGrid, а к DataSet, чьи данные он отображает.
Смотрите это свойство - FILTER у DataSet (что у вас там - Table или Query)...
query. как вообще такой эффект делается, если можно код
ГОСЕАН вне форума Ответить с цитированием
Старый 02.02.2008, 14:39   #4
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

читаешь значение поле где стоит курсор и делаешь фильт по этому полю (значению)...
если кверик, то запросом через order by...
dron-s вне форума Ответить с цитированием
Старый 05.02.2008, 18:21   #5
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от dron-s Посмотреть сообщение
читаешь значение поле где стоит курсор и делаешь фильт по этому полю (значению)...
если кверик, то запросом через order by...
Вы посмотрите Access пожалуйста внимательно! Вопрос ведь простой!

Над полем нажимаешь правую кнопку мыши, всплывает контестное меню. В этом меню есть строка ввода, набираешь значение и фильтруется в по этому значению. Вопрос в том как это эффект делается?
ГОСЕАН вне форума Ответить с цитированием
Старый 05.02.2008, 22:03   #6
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

у меня допусим даже не установлен акцесс...
но по твоим описанием понял что открывается не то дополнительное поле (Еdit) в котором вводятся значения и по этому значению моментально производится поиск... если же так, то делай простую выборку на OnChange того же едита...
dron-s вне форума Ответить с цитированием
Старый 07.02.2008, 12:18   #7
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от dron-s Посмотреть сообщение
у меня допусим даже не установлен акцесс...
но по твоим описанием понял что открывается не то дополнительное поле (Еdit) в котором вводятся значения и по этому значению моментально производится поиск... если же так, то делай простую выборку на OnChange того же едита...
а как вообще это поле во всплывающем меню появляется?
ГОСЕАН вне форума Ответить с цитированием
Старый 08.02.2008, 09:22   #8
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

посмотри "девок" там вроде есть такие компоненты...
или можешь ручка поэксперементировать
dron-s вне форума Ответить с цитированием
Старый 08.02.2008, 11:22   #9
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

//В свойстве Caption элемента меню, просто напиши "фильтр по выбранному".

procedure TForm1.N1Click(Sender: TObject);
var
FieldName: string;
begin
FieldName := ExDDBGrid1.SelectedField.FieldName;
ExDDBGrid1.DataSource.DataSet.Filte r := FieldName + '=''' + ExDDBGrid1.SelectedField.AsString + '''';
ExDDBGrid1.DataSource.DataSet.Filte red := True;
end;

Или Для примера нужен TEdit на форме. При изменении значения в Edit1 будет обновляться фильтр для DataSet. Этот примр работат только для текстовых полей.

procedure TForm1.Edit1Change(Sender: TObject);
begin
Query1.Filter := ExDDBGrid1.SelectedField.FieldName + '=''' + Edit1.Text + '*''';
Query1.Filtered := True;
end;

Последний раз редактировалось Rik; 08.02.2008 в 11:32. Причина: Дополнение
Rik вне форума Ответить с цитированием
Старый 09.02.2008, 03:08   #10
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от Rik Посмотреть сообщение
//В свойстве Caption элемента меню, просто напиши "фильтр по выбранному".

procedure TForm1.N1Click(Sender: TObject);
var
FieldName: string;
begin
FieldName := ExDDBGrid1.SelectedField.FieldName;
ExDDBGrid1.DataSource.DataSet.Filte r := FieldName + '=''' + ExDDBGrid1.SelectedField.AsString + '''';
ExDDBGrid1.DataSource.DataSet.Filte red := True;
end;

Или Для примера нужен TEdit на форме. При изменении значения в Edit1 будет обновляться фильтр для DataSet. Этот примр работат только для текстовых полей.

procedure TForm1.Edit1Change(Sender: TObject);
begin
Query1.Filter := ExDDBGrid1.SelectedField.FieldName + '=''' + Edit1.Text + '*''';
Query1.Filtered := True;
end;
Спасибо огромное, но я хотел еще реализовать дополнительную возможность: именно чтобы Edit1 был встроен во всплывающее меню! когда кликнешь над конкретным полем в DBGrid правой кнопкой и наборе во всплывающем меню значении фильтрация производится именно по набранному значению и именно в конкретном поле
ГОСЕАН вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос или Фильтр wolfik0 БД в Delphi 3 02.05.2008 04:42
Фильтр Инночка Помощь студентам 4 30.04.2008 20:27
Фильтр в базе Versifikator БД в Delphi 3 18.04.2008 10:35
фильтр в dbgrid ГОСЕАН БД в Delphi 2 24.12.2007 15:14
Фильтр и поиск emfw БД в Delphi 1 11.03.2007 11:01