| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > фильтрация по дню рождения |
| Автор: Гость_Johnny M 12.8.2005, 22:13 | ||
Привет. Хочу сделать фильтрацию сегодняшних именинников, но данный код не работает. Я уже воспользовался поиском по форуму - именно такой проблемы вроде никто не описывал - а мне нужна фильтрация по сегодняшнему дню и месяцу - без года
Кто нибудь знает, где тут закопали собачку? |
| Автор: Pakshin A. S. 12.8.2005, 22:41 | ||
http://forum.vingrad.ru/index.php?showforum=88 В специализированном форуме. А СКУЛ чем не подходит? |
| Автор: Cashey 13.8.2005, 00:17 | ||||
забавная ссылка
ну звездочек должно быть очевидно 4. Хотя и не уверен, что это поможет |
| Автор: SergeBS 14.8.2005, 16:57 | ||
Всего дел - вычисляемое поле (день + месяц в любом виде, лишь бы не их сумма |
| Автор: Johnny M 14.8.2005, 17:10 | ||
по моему этот номер не пройдет. там ведь все таки тип Дата - вся закавыка возникает из за формата его представления - особенности написания первых 9 дней месяца и первых 9 месяцев - 01.05 к примеру. И при переводе в другое поле он будет переводиться как тип word или integer - то есть чило без нуля впереди... Или я не прав? |
| Автор: bursa 15.8.2005, 15:57 |
| Procedure ...OnCalcField... var s:string; begin s:=Query1.FieldByName('DATA').asString; s:=s[1]+s[2]+s[4]+s[5]; Query1.FieldByName('CalcDATA').asString:=s; end; .... Query1.Filter:='CalcData='+..... |
| Автор: SergeBS 17.8.2005, 15:41 |
| bursa Блин, разжуй и в рот еще положи CalcDay - вычисляемое поле, DateFld - поле даты рождения, FilterStr - строка фильтра procedure xxx.yyyy.OnCalcField; begin CalcDay := FormatDateTime('ddmm', DateFld); end; Где-то еще: FilterStr := FormatDateTime('ddmm', now); Куда эту строку впихнуть - тема домашнего задания. |
| Автор: bursa 17.8.2005, 15:52 | ||
Прошу не вымахиваться. |
| Автор: SergeBS 17.8.2005, 15:52 |
| Вдогонку: нафиг не надо поле DateFld преобразовывать лишний раз. Т.е. если поле DR в таблице UserNames - Date - дата рождения, то так и пишем: CalcDay := FormatDateTime('ddmm',UserNames['DR']); А способ со всякими s[1]... - от лукавого, ибо привязан к формату даты, принятому незнамо кем незнамо где на серваке и в системе. Нехай они сами меж собой и разбираются. |