|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Фильтр в DataSource
Есть такая схема TClientDataSet --> TDataSource --> TDBGrid. Необходимо сделать фильтрацию по полю DBGrid1.Fields[1]. Фильтрация типа "вводим в Edit1 нечто и получаем отфильтрованные данные". Проблема в том, что я почему то не сделал ни ADOTable ни ADOQuery и использовать SQL запросы не получается. Переделывать не хотелось бы, ибо это единственное, что не работает. Можно ли как то еще отфильтровать?
|
#2
|
||||
|
||||
Код:
ClientDataSet1.Filter:='********'; ClientDataSet1.Filtered:=True; Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Demonuka (13.01.2012)
|
#3
|
|||
|
|||
Спасибо, ты как всегда выручил...
|
#4
|
|||
|
|||
Не...так не работает...Либо я что-то не то в фильтре пишу. Решил сделать через ClientDataSet1.CommandText. Пишу так
Код:
procedure TForm1.Edit5Change(Sender: TObject); begin ClientDataSet1.CommandText:='SELECT * FROM Данные WHERE ТП = "'+Edit5.Text+'";'; ClientDataSet1.Open; end; |
#5
|
||||
|
||||
конечно, работает: http://data.cod.ru/139021
Код:
type TForm1 = class(TForm) ClientDataSet1: TClientDataSet; DataSource1: TDataSource; DBGrid1: TDBGrid; Edit1: TEdit; CheckBox1: TCheckBox; procedure FormCreate(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin ClientDataSet1.FieldDefs.Add('id', ftInteger); ClientDataSet1.FieldDefs.Add('name', ftString, 20); ClientDataSet1.CreateDataSet; for i:=0 to 15 do begin ClientDataSet1.Append; ClientDataSet1.FieldByName('id').AsInteger:=i; ClientDataSet1.FieldByName('name').AsString:=IntToHex(i, 2); ClientDataSet1.Post; end; end; procedure TForm1.CheckBox1Click(Sender: TObject); begin ClientDataSet1.Filtered:=CheckBox1.Checked; if ClientDataSet1.Filtered then ClientDataSet1.Filter:=Edit1.Text; end; Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Demonuka (16.01.2012)
|
#6
|
|||
|
|||
Спасибо, NumLock! Пойду выпрямлять руки...
|