Вопрос № 46792: Здравствуйте, эксперты.
Можно ли отсортировать таблицу, чтобы по мере введения в эдит текста, оставались только записи в одном из полей которых содержался
бы кусок введенного текста. Через запрос я это реализовал, А можно через свойство Filter???...
Вопрос № 46.792
Здравствуйте, эксперты.
Можно ли отсортировать таблицу, чтобы по мере введения в эдит текста, оставались только записи в одном из полей которых содержался
бы кусок введенного текста. Через запрос я это реализовал, А можно через свойство Filter??? Если можно то какова должна быть
строка этого свойства. Пробовал по аналогии с запросом - со словом Like, но получается как равно и почему то только с цифрами,
а вводишь строку - ошибка вылетает.
Отправлен: 20.06.2006, 11:31
Вопрос задал: ququ1 (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Архангельский Андрей Германович
Здравствуйте, ququ1!
В некоторых пакетах, например IBObjects, есть компонент IncSearch, который позволяет осуществлять последовательный поиск.
Если же нужно чтобы работал как фильтр, то много лучше через запрос с like '%text%'
Тогда поиск идет по любому фрагменту, а не только по началу.
Фильтр работает капризно.
Если таблица небольшая, то можно нужный столбец загнать в ComboBox и там последовательный поиск работает автоматически
--------- Если дело заслуживает быть сделаным, то оно заслуживает чтобы его сделали ХОРОШО
Отвечает: 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