![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() добрый день!
подскажите пожалуйста как осуществить в таблице поиск с помощью locate по дате которая находится в диапазоне от dtp1 и до dtp2? заранее благодарна. |
#2
|
||||
|
||||
![]() Насколько я помню locate перемещается по набору данных и незнаю как можно будет переместиться к записи в каком-то диапозоне.
Я думаю в Вашем случае лучше использовать фильтрацию данных. Например: Код:
procedure TForm1.Button1Click(Sender: TObject); begin Table1.Filter:='datn>=01/01/2008 and datn<=01.02.2008'; Table1.Filtered:=True; end; From VasYa with LoVe... |
#3
|
|||
|
|||
![]() спасибо конечно, но у меня фильтр и поиск отдельно идут...
то есть на фильтр уже все работает как надо. а вот диапазон даты я заранее не знаю чтобы в коде его прописать можно было, выбираю через TDateTimePicker |
#4
|
|||
|
|||
![]() Фильтр тормоза большие.
Лучше через запрос сделать Примерный алгоритм: var q: TQuery; begin q := TQuery.Create(nil); q.SQL.Add('select Id from Таблица where Date>=:FromDate and Date<=:ToDate'); q.Params.ParamByName['FromDate'] := С какой даты; q.Params.ParamByName['ToDate'] := По какую дату; q.Open; Table.Locate('Id', q.FieldByName('Id').AsInteger, []); q.Close; q.Free; end; |
#5
|
||||
|
||||
![]() Цитата:
Код:
procedure TForm1.Button1Click(Sender: TObject); begin Table1.Filter:=Table1.Filter +' and datn>='+DateTimePicker1.date+' and datn<='+DateTimePicker2.date; Table1.Filtered:=True; end; From VasYa with LoVe... |
#6
|
||||
|
||||
![]() Цитата:
From VasYa with LoVe... |
#7
|
|||
|
|||
![]() ага, пасиба этот кусочек работает))
|