![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
1147 |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
В таблице необходимо отсортировать данные по дате таким образом:
31.11.2002 02.07.2003 12.01.2004 07.12.2005 20.05.2006 использовал следующий код: procedure TForm1.N8Click(Sender: TObject);но он сортирует данные в таком порядке: 02.07.2003 07.12,2005 12.01.2004 20.05.2006 31.11.2002 т.е. сортировка происходит по первым числам а не по фактической величине даты. Пробовал таким образом: procedure TForm1.N8Click(Sender: TObject);но результат тот же самый. Подскажите, как правильно отсортировать данные по дате как описано выше |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Для полей типа data/time нужно по-другому организовывать условия поиска Естественно... LIKE работает именно с текстом, с датами работают при помощи других функций. Но "мы пойдем другим путем" (С):1) OnChange Эдита чуть-чуть меняешь: procedure TForm1.Edit1Change(Sender: TObject); 2) А теперь - зачем нам понадобилось делать столь неразумно: отключать фильтр и тут же его опять включать, ничего не меняя. А вот зачем: есть у TADOTable такое событие - OnFilterRecord, в котором ты можешь задать для активного фильтра критерий, допускать ли запись или фильтровать ее. Вот для того, чтобы при каждом изменении содержимого Edit-а перефильтровывались данные, и надо отключить/включить Filtered. Ну, и сам обработчик: procedure TForm1.ADOTable1FilterRecord(DataSet: TDataSet; var Accept: Boolean);(я везде оставил свои названия компонентов, поменяешь потом на то, что у тебя...) Теперь можно в Эдите набирать любые сочетания, хоть так: 10/10/ (что выдаст тебе все данные с датой = 10 октября), хоть вот так: /12/ (что покажет все декабрьские даты). Ну, в общем, как и LIKE ![]() |
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 17:01 |