Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

Поиск в дате в Гриде   Найти похожие ветки 

 
Kvinta   (2006-12-12 12:02) [0]

Есть Грид, в нем нужно искать некую информацию по нажатию клавиши, с текстовыми полями, все работает. Но есть Колонки данные в которых типа ДАТА, с ними так не получается, появляется ошибка, что в общем понятно. Не могу придумать, как реализовать поиск в этих столбцах. т.е. если человек ввел скажем 10.1 Курсор перейдет на ближайшую дату 10- го числа 1?-го месяца, соответственно при нажатии клавиш дальше, поиск уточняется. Кажется понятно объяснил :) Использую метод Locate: Вот кусочек из KeyPress:
ADoQuery1.Locate(DbGrid1.SelectedField.FullName,StrToDate(FindStr+Key),[loPartialKey])

Примечание:
EhLib мне не подходит.


 
clickmaker ©   (2006-12-12 12:09) [1]

боюсь, что Locate здесь не поможет. ПартиалКи работает только для строк, для числовых полей (как дата) он не имеет смысла.
Поэтому свой метод поиска придется писать. С разбором и сравнением частей дат


 
Kvinta   (2006-12-12 12:11) [2]


> Поэтому свой метод поиска придется писать. С разбором и
> сравнением частей дат

Ууууу.... Нехотелось бы конечно. Может у кого еще есть мнения на этот счет?


 
clickmaker ©   (2006-12-12 12:14) [3]

ну как вариант, можно извернуться и при вводе частичной даты просто дополнять другие поля, а потому уже в Locate
т.е. вводит чел 10. - месяц и год ставишь текущие, ну и т.д.


 
Kvinta   (2006-12-12 12:26) [4]


> дополнять другие поля, а потому уже в Locate
> т.е. вводит чел 10. - месяц и год ставишь текущие, ну и
> т.д.


Нет. Этот номер не прошел по причине того что если дополнить дату ну скажет 10.01.01 Locate ищет именно такую дату. :( А мысль была хорошая, я тоже в этом направлении думал...


 
Fredy314 ©   (2006-12-12 12:40) [5]

В звпросе Where (Data=10.01.01)or(Data=10.01.02).....


 
Fredy314 ©   (2006-12-12 12:41) [6]

Все варианты генерировать програмно в зависимости от того какакя часть даты введена, работать должно, только это изврат.


 
Kvinta   (2006-12-12 12:45) [7]


> В звпросе Where (Data=10.01.01)or(Data=10.01.02).....


... Это шутка? Даты могут варьйроваться в очень больших пределах. А если всё что ввели это 1? И причем тут запрос? Он нам тогда одну строчку в грид вернет, ну либо 10, смотря сколько дат совпадет :)
или может я туплю?


 
Sergey13 ©   (2006-12-12 12:58) [8]

Может стоит завести калк поле - дата в строковом представлении и искать по нему?


 
Kvinta   (2006-12-12 13:02) [9]


> Может стоит завести калк поле - дата в строковом представлении
> и искать по нему?

Тоже не годиться, структуру базы менять уже поздно.


 
Рамиль ©   (2006-12-12 14:37) [10]


> Тоже не годиться, структуру базы менять уже поздно.

Так причем тут структура базы?
Можно просто
select DateToStr(fDate) as sDate from TableName where ...
DateToStr в зависимости от того какая СУБД
Или вычисляемое поле в DataSet как в [8]



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.045 c
15-1165573156
Гарри Поттер
2006-12-08 13:19
2006.12.31
Кому знаком такой глюг, помогите?


15-1165946774
ProgRAMmer Dimonych
2006-12-12 21:06
2006.12.31
Наверное, ламерский вопрос...


2-1165900931
Babs
2006-12-12 08:22
2006.12.31
Переключение раскладки клавы


2-1165584300
TrainerOfDolphins
2006-12-08 16:25
2006.12.31
Вызвать обработчик, имя которого неизвестно в дизайн-тайме


2-1165787910
ZiTRaX
2006-12-11 00:58
2006.12.31
Проблемы с отображением содержимого таблиц





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский