Locator search (локатор поиск) по нескольким словам

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Locator search (локатор поиск) по нескольким словам

Сообщение morkovin »

finsoftrz писал(а): 03 Июнь 2019, 17:02 у меня и стандартный фильтр по строковым колонкам во всех броузах также работает по фрагментам строк. Это специальный шаблон, который активирует ввод значений для поиска при щелчке правой кнопкой мыши по заголовку колонки. Понимает отдельно строки, числа и даты, вызывая разные диалоги ввода значений. Плюс там тема по сохранению отборов и быстрому их выбору в дальнейшем
_TabogaInteractiveFilter, есть на фтп
WBR, morkovin
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Locator search (локатор поиск) по нескольким словам

Сообщение kreator »

gopstop2007 писал(а): 03 Июнь 2019, 19:01
kreator писал(а): 03 Июнь 2019, 17:49 Я, наверно, погорячился со своей идеей. Что-то у меня Filtered locator не работает. На ФБ. gopstop2007, как он должен работать?

Код: Выделить всё

l_search_words  STRING(20)
l_oneword       STRING(10) ! первое словосочетание
l_twoword       STRING(10) ! второе словосочетание
l_words_used	BYTE	! вкл. мою фильтрацию
l_manywords	BYTE ! 
l_search_words - поле используемое вместо локатора для поиска

на кнопку обновить (пока для теста в ручную ) вешаю

Код: Выделить всё

    l_manywords = INSTRING(' ',l_search_words,1,1)
    l_oneword = SUB(l_search_words,1,l_manywords-1)
    l_twoword = SUB(l_search_words,l_manywords,LEN(CLIP(l_search_words))+1 - l_manywords)
    l_words_used = 1
    BRWx.ResetFromBuffer()
в ValidateRecord после Parent нужного Browse

Код: Выделить всё

IF l_words_used 
    IF l_manywords > 0
        IF ~INSTRING(UPPER(CLIP(l_oneword)), UPPER(CLIP(My:ProductName)),1,1) OR ~INSTRING(UPPER(CLIP(l_twoword)), UPPER(CLIP(My:ProductName)),1,1) then return(Record:Filtered) END 
    ELSE
        IF ~INSTRING(UPPER(CLIP(l_search_words)), UPPER(CLIP(My:ProductName)),1,1) then return(Record:Filtered) END 
    END
    l_words_used = 0        
END 
Не, у меня какие-то глобальные проблемы с filtered локатором. Он должен фильтровать? Без фильтра в броузе 1000 записей, с локатором - 10. Так?
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Locator search (локатор поиск) по нескольким словам

Сообщение gopstop2007 »

да, при наборе остаются только записи в которых найдено словосочетание введенное в локаторе
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Locator search (локатор поиск) по нескольким словам

Сообщение kreator »

Чего-то у меня на ODBC не работает. Надо будет какой-нибудь старый проект на tps поднять. Там посмотреть.
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Locator search (локатор поиск) по нескольким словам

Сообщение gopstop2007 »

оно одинаково работает на ODBC или TPS
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить