Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

Продолжение поиска 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.037 c
15-1163694687
Ringo
2006-11-16 19:31
2006.12.03
Бог есть. Вероятно. А как думают остальные?


2-1163670719
galyc
2006-11-16 12:51
2006.12.03
правильность ввода пути


15-1163157805
Elen
2006-11-10 14:23
2006.12.03
Конвертация 3D


15-1163596447
novill
2006-11-15 16:14
2006.12.03
Кто-нибудь пользуется Castalia 4.2?


11-1140014372
Игорь Шевченко
2006-02-15 17:39
2006.12.03
К вопросу о замене System/SysInit в Delphi и обработке исключений