|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Фильтрация в БД по возрасту
Здравствуйте!
Есть БД Paradox, которую показывает DBgrid. Хочу осуществить фильтрацию по полю "Data_rojdenia" в формате "17.04.1992", которая к примеру по выбору RadioButton выводила в DbGrid только тех людей возраст которых Больше 18 лет или менее 18 лет. Какие компоненты использовать? Какой обработчик для них нужен? Нужно ли изменить БД? Какой должен быть тип поля и должно ли они оно быть вычисляемым? По возможности пожалуйста поподробнее=)Я в этом новичок! За ранее большое спасибо! Последний раз редактировалось Dustinsk82la, 24.11.2011 в 15:04. |
#2
|
|||
|
|||
Цитата:
Тебе необходимо создать индех в Database desktop у таблицы, в который будет входить твое поле с датой (Нужно нажать restructure, потом в комбобоксе выбрать Secondary Indexes, Define). А потом использовать свойства indexfieldnames или indexname каомпонента TTable для сортировки, либо свойство Filter и Filtered для фильтрации... |
#3
|
|||
|
|||
С индексом разобрался. Теперь поле Data_rojdenia индексировано.
Если в свойство "Filter" компонента Table1 написать "Data_rojdenia>12.31.1993" , то выдает Ошибку - Invalid Filter Expression Character'.' Как быть дальше? Нужно чтобы фильрация происходила по щелчку по кнопке или через radiobutton, checkbox. Подскажите пожалуйсто!=) |
#4
|
||||
|
||||
Если тип поля Data_rojdenia задан как Date то фильтр надо формировать так:
Код:
Filter := 'Data_rojdenia > ' + StrToDate('12.31.1993'); Код:
Filter := 'Data_rojdenia > '+QuotedStr('12.31.1993'); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Спасибо за код!
Но, если его вписать в свойство Filter объекта Table, то выдает ошибку "Table1: Field 'Filter' not found" Если вписать код для Button, то он тоже не работает.(Скриншот прилагается) Совсем не давно начал осваивать Delphi и много еще не понимаю) |
#6
|
|||
|
|||
Убери StrToDate, положи на форму TDateTimePicker
Код:
Filter := 'Data_rojdenia > ' + DateToStr(DateTimePicker1.Date); |
#7
|
||||
|
||||
Конечно ругается, ведь вы не указали какому объекту этот фильтр пришпандорить. Так попробуйте:
Код:
Table1.Filter := 'Data_rojdenia > ' + StrToDate('12.31.1993'); Код:
Table1.Filtered := True; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#8
|
|||
|
|||
Поместил компонент TDateTimePicker. Теперь показывает сегодняшнюю дату и календарь)
Если вписать этот код "Filter := 'Data_rojdenia > ' + DateToStr(DateTimePicker1.Date);]" в свойство Table, то ошибка причем все таже. "Table1: Field 'Filter' not found" или "Table1: Field 'Table1Filter' not found" Хочется все-таки реализовать данную функцию=) Как я уже говорил желатульно по щелку мыши на компоненте CheckBox или RadioButton. С вариантами: 1)Фильтровать до 18 лет 2)Фильтровать после 18 лет 3)Не фильтровать Спасибо! Последний раз редактировалось Dustinsk82la, 24.11.2011 в 18:39. |
#9
|
|||
|
|||
Пришли мне проект на емайл, и твой е-мэйл я тебе сделаю...
|