Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 162
от 26.06.2006, 02:35

Администратор:CJ
В рассылке:Подписчиков: 236, Экспертов: 36
В номере:Вопросов: 1, Ответов: 4


Вопрос № 46792: Здравствуйте, эксперты. Можно ли отсортировать таблицу, чтобы по мере введения в эдит текста, оставались только записи в одном из полей которых содержался бы кусок введенного текста. Через запрос я это реализовал, А можно через свойство Filter???...

Вопрос № 46.792
Здравствуйте, эксперты.
Можно ли отсортировать таблицу, чтобы по мере введения в эдит текста, оставались только записи в одном из полей которых содержался бы кусок введенного текста. Через запрос я это реализовал, А можно через свойство Filter??? Если можно то какова должна быть строка этого свойства. Пробовал по аналогии с запросом - со словом Like, но получается как равно и почему то только с цифрами, а вводишь строку - ошибка вылетает.
Отправлен: 20.06.2006, 11:31
Вопрос задал: ququ1 (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архангельский Андрей Германович
Здравствуйте, ququ1!

В некоторых пакетах, например IBObjects, есть компонент IncSearch, который позволяет осуществлять последовательный поиск.
Если же нужно чтобы работал как фильтр, то много лучше через запрос с like '%text%'
Тогда поиск идет по любому фрагменту, а не только по началу.
Фильтр работает капризно.

Если таблица небольшая, то можно нужный столбец загнать в ComboBox и там последовательный поиск работает автоматически
---------
Если дело заслуживает быть сделаным, то оно заслуживает чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Практикант)
Ответ отправлен: 20.06.2006, 11:42

Отвечает: Shcherbakov Anton
Здравствуйте, ququ1!
попробуйте так:
в обработчик Edit onChange вставьте строку Table.FindNearest(edit.text);
по идее должно пройти..
Ответ отправил: Shcherbakov Anton (статус: 2-ой класс)
Ответ отправлен: 20.06.2006, 11:43

Отвечает: Маренич Владимир
Здравствуйте, ququ1!
Попробуйте использовать OnFilterRecord набора данных. Переменной Accept присвойте True, если запись Вам подходит и False - если нет. Как сказал Архангельский Андрей Германович фильтрация очень капризная (особенно встречаются "глюки" при закрытии формы (перед закрытием формы (например, в OnClose) выполняйте закрытие набора данных (Close), а возможно перед этим еще и фильтрацию отключить. Если в таблице много записей, то лучше всё-таки использовать запрос, т.к. при фильтрации все равно ВСЯ таблица грузится на рабочую станцию и "перебирается"...
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 20.06.2006, 12:22

Отвечает: Zлоумышленник
Здравствуйте, ququ1!
Комментарии к коду в приложении, взял из своего проекта.
cbLoginFilter - комбобокс
tbPasswords - таблица, в которой ищем
Закомментированные строки для "чтобы по мере введения в эдит текста, оставались только записи в одном из полей которых содержался бы кусок введенного текста"
Строка Locate('login',cbLoginFilter.Text,[loCaseInsensitive,loPartialKey]); для перехода на искомую запись без фильтрации

Приложение:

---------
Стандарт есть легкоусвояемая форма, маскирующая присутствие или отсутствие содержания.

Ответ отправил: Zлоумышленник (статус: 9-ый класс)
Ответ отправлен: 20.06.2006, 18:53


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное