Фильтрация в листе: "начинается с" и "содержи

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Фильтрация в листе: "начинается с" и "содержи

Сообщение StillZero »

Стандартный лист - одно поле - Наименование товара
Есть стандартный entry-локатор.
В настройках листа, установлен тип поиска "begins with".

Хочу сделать рядом с локаторам галку типа "искать внутри слова". В этом случае должен происходить поиск в листе по условию LIKE '%Search String%'

Как это реализовать?
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Фильтрация в листе: "начинается с" и "сод

Сообщение Andrew™ »

StillZero писал(а):Стандартный лист - одно поле - Наименование товара
Есть стандартный entry-локатор.
В настройках листа, установлен тип поиска "begins with".

Хочу сделать рядом с локаторам галку типа "искать внутри слова". В этом случае должен происходить поиск в листе по условию LIKE '%Search String%'

Как это реализовать?
ставь галку - CHECK Filter for BrowseBox, и в качестве условия фильтрации задай OR "содержит" по локаторному полю и условие - Condition - если локаторное поле не пустое
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Сообщение StillZero »

че та не въехал
вроде все сделал как надо..не работает, ваще на эту галку не обращает внимания, т.е. запрос формирует без этой галки

по другому: простой check-box повесил, в условия листа в default condition вставил %_% по условию ГалкаВключена и len(loc_Locator), поставил OR
формирует запрос вида:
...WHERE SpareName LIKE SearchStr% AND SpareName LIKE %SearchStr%

не выходит вообщем...
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

StillZero писал(а):че та не въехал
вроде все сделал как надо..не работает, ваще на эту галку не обращает внимания, т.е. запрос формирует без этой галки

по другому: простой check-box повесил, в условия листа в default condition вставил %_% по условию ГалкаВключена и len(loc_Locator), поставил OR
формирует запрос вида:
...WHERE SpareName LIKE SearchStr% AND SpareName LIKE %SearchStr%

не выходит вообщем...
у локатора есть два режима поиска с/без учёта доп фильтров, в RUN TIME погляди на POPUP по правой кнопке мыши на локаторном поле, и в свойствах шаблона для локатора можно выставить default значение или жёсткое значение для режима поиска по локаторному полю
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Сообщение StillZero »

у локатора есть два режима поиска с/без учёта доп фильтров
ага, выключено было

заработала :)

но не с первого раза... :) вставил в условие check-фильтра:
loc:FlagSearchInside and len(loc_Locator)

где loc:FlagSearchInside BYTE
и присвоил эту переменную как USE-метку этому чек-боксу.
так вот loc:FlagSearchInside всегда равно нулю
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

StillZero писал(а):
у локатора есть два режима поиска с/без учёта доп фильтров
ага, выключено было

заработала :)

но не с первого раза... :) вставил в условие check-фильтра:
loc:FlagSearchInside and len(loc_Locator)

где loc:FlagSearchInside BYTE
и присвоил эту переменную как USE-метку этому чек-боксу.
так вот loc:FlagSearchInside всегда равно нулю
check боксу ничего присваивать не надо т к я в классе переопределяю use переменную, юзай сооветсующую BRWx:Filter.Field свойство класса после его инициализации
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

А можно ли сделать наращиваемый фильтр. Например сначала ищем "Конд" (Кондиционер), а потом "Sams" (Samsung), т.е. сначала появляется список всех кондиционеров а потом отбираются кондиционеры марки Samsung.
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Денис писал(а):А можно ли сделать наращиваемый фильтр. Например сначала ищем "Конд" (Кондиционер), а потом "Sams" (Samsung), т.е. сначала появляется список всех кондиционеров а потом отбираются кондиционеры марки Samsung.
руками можно сделать всё, заведи Queue - добавляй в неё номер колонки и локаторное значение, в .Where формируй SELF.Select.Where по этой Queue, а так это есть Auto Filter - сидит в планах реализации - будет как в Excel, над LIST будеть LIST с одной строкой EIP - местоположение колонок обеих листов будет синхронизировано, вводим значения для каждой колонки и фильтруем
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

Ну это несовсем AutoFilter, т.к. поиск происходит в одной и тойже колонке. Просто наименование товара может быть длинным.
Ответить