Форум: "Базы";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
ВнизПродолжение поиска Locate Найти похожие ветки
← →
vodvorezlaya © (2006-09-29 10:26) [0]Всем доброго дня.
Пользуюсь поиском Locate;
В столбце есть повторяющиеся значения.
Locate находит первое значение в столбце, как сделать поиск всех последующих значений?
Спасибо.
← →
Johnmen © (2006-09-29 10:38) [1]Самому пройти по НД с анализом на соответствие записи нужному критерию...
← →
ЮЮ © (2006-09-29 10:45) [2]Отсортировать по этому столбцу. Тогда хватит одного Locate
← →
ЮЮ © (2006-09-29 10:47) [3]Или отфильтровать. Или сделать выборку. Скакать по куче записей в поиске нужной - не самое лучшее решение, ИМХО
← →
vodvorezlaya © (2006-09-29 10:47) [4]
> Самому пройти по НД с анализом на соответствие записи нужному
> критерию...
А нет способа полегче, т.к. твой метод конечно выход, но он ресурсоёмкий.
Впрочем, к первой записи можно пройти по Locate, а дальше уже вручную
while not Eof;
Хотя, если строка найдена, то можно через Filter отобразить в DataSet поля если повторяющиеся имеются.
← →
vodvorezlaya © (2006-09-29 10:50) [5]
> Отсортировать по этому столбцу. Тогда хватит одного Locate
Отличная идея. Вери сенькс.
← →
Desdechado © (2006-09-29 11:19) [6]>> Самому пройти по НД с анализом на соответствие записи нужному критерию...
> А нет способа полегче, т.к. твой метод конечно выход, но он ресурсоёмкий.
И чем он ресурсоемкий? 3-мя строчками кода?
> Впрочем, к первой записи можно пройти по Locate, а дальше уже вручную
Locate тоже делает перебор, так что это ничем не легче.
> Отсортировать по этому столбцу. Тогда хватит одного Locate
Это не всегда выход. Например, выборка должна быть показана с конкретной сортировкой, а искать совсем по произвольному полю.
← →
evvcom © (2006-09-29 11:29) [7]DevExpress-овский грид сделает это за тебя сам, но он платный. Достаточно набрать нужный образец для поиска в столбце, он спозиционируется на первую найденную, далее Ctrl+Enter поиск вниз, Shift+Enter поиск вверх.
← →
MsGuns © (2006-09-29 11:39) [8]Если поле активного индекса, то есть методы FindKey.. (вроде так, точно не помню), ищущие вперед, назад, первый, последний.
Вообще же для нормально удобного интерфейса поиск должен быть универсальным, т.е. многорежимным.
Он должен обеспечивать как минимум след.режимы:
1. Контекстный поиск в колонке. По изменению текста в некотором контроле (TEdit) выполняется немедленный поиск Locate(..,..,[loPatrialKey]) первой похожей записи. Должен предусматривать включение/отключение регистрочувствительности
2. Поиск по маске. Готовится маска (маски, если поиск по неск.колонкам обновременно) в TEdit и по кнопке запросом или сканированием ищется первая запись, удовлетворяющая маске. Должен предусматривать включение/отключение регистрочувствительности и частичного совпадения (LIKE)
3. Поиск в список. В отдельной формочке (панельке) отбражаются ВСЕ найденные по условиям (маскам) записи. По клику на списке поиск и активация этой записи в основной сетке. При этом список также должен быть виден (панель, модально открытая формочка или формочка fsStayOnTop)
← →
Desdechado © (2006-09-29 12:22) [9]> Он должен обеспечивать как минимум след.режимы
Ты прямо как на лекции. Долженствование тут не приемлемо. Тем более долженствование интерфейсных решений, предложенных тобой.
На вкус и цвет, как говорится...
Поэтому, только совет и не более :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.057 c