TDBGrid + TSQLQuery + Filter

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

TDBGrid + TSQLQuery + Filter

Сообщение men260181 » 31.01.2013 07:01:34

Приветствую всех! Прошу знающих людей подсказать, как можно реализовать:
- Есть форма с TDBgrid, TSQLQuery, TDataSource - используется для отображения справочника. Хочу чтобы можно было осуществлять интерактивный поиск с клавиатуры по столбцу в котором находится курсор. По задумке хотел использовать свойство TSQLQuery.Filter, чтобы при каждом нажатии список визуально сокращался при срабатывании фильтра, но DBGrid не отображает информацию с условием фильтра, а показывает полностью всё, а также показывает пустые строки, которые при прокрутке мыши исчезают. Вариант с изменением запроса при каждом нажатии клавиши не подходит, вариант с дополнительным полем на форме для поиска и кнопкой найти - не подходит. Если кто использует свойство Filter и выводит результат в Грид, дайте образец кода пожалуйста или ссылку. У меня Lasarus 1.0 + MySQL + WinXP.
Заранее благодарен!!!
men260181
незнакомец
 
Сообщения: 1
Зарегистрирован: 15.01.2013 21:58:16

Re: TDBGrid + TSQLQuery + Filter

Сообщение Frolik » 31.01.2013 11:15:31

Я не проверял, но чутье подсказывает, что дело может быть в свойстве Filtered.
Frolik
постоялец
 
Сообщения: 275
Зарегистрирован: 18.08.2011 11:52:32

Re: TDBGrid + TSQLQuery + Filter

Сообщение dunin » 31.01.2013 11:49:01

men260181 писал(а):...Вариант с изменением запроса при каждом нажатии клавиши не подходит, вариант с дополнительным полем на форме для поиска и кнопкой найти - не подходит....

Почему? :|
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: TDBGrid + TSQLQuery + Filter

Сообщение Frolik » 31.01.2013 12:17:40

dunin писал(а):
men260181 писал(а):...Вариант с изменением запроса при каждом нажатии клавиши не подходит, вариант с дополнительным полем на форме для поиска и кнопкой найти - не подходит....

Почему? :|


Действительно - почему? Если в запросе использовать regexp, появляются дополнительные фишки при поиске.
Frolik
постоялец
 
Сообщения: 275
Зарегистрирован: 18.08.2011 11:52:32

Re: TDBGrid + TSQLQuery + Filter

Сообщение naomika » 09.08.2013 13:20:33

реализация так и не понятна
Аватара пользователя
naomika
незнакомец
 
Сообщения: 7
Зарегистрирован: 09.08.2013 08:30:41

Re: TDBGrid + TSQLQuery + Filter

Сообщение Aphix » 23.02.2024 17:45:36

http://www.freepascal.ru/forum/viewtopi ... 01&p=74625

Я сделал так (на Lazarus):
//для события SQLQuery1.OnFilterRecord
procedure TForm2.SQLQuery1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
var
s1,s2:UnicodeString;
begin
s1:=SQLQuery1.FieldByName('field_name').Value;
s2:=Edit2.Text;
Accept:=False;
if POS(UpCase(s2),UpCase(s1))<>0 then Accept:=True;
end;

//для события Edit2.OnChange
procedure TForm2.Edit2Change(Sender: TObject);
begin
if Edit2.Text='' then
SQLQuery1.Filtered:=False
else
begin
SQLQuery1.Filtered:=False;
SQLQuery1.Filtered:=True;
end;
end;
Aphix
незнакомец
 
Сообщения: 1
Зарегистрирован: 23.02.2024 17:30:52


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 95

Рейтинг@Mail.ru