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

Clarion, Clarion 7

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

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

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

Сообщение morkovin » 03 Июнь 2019, 19:35

finsoftrz писал(а):
03 Июнь 2019, 17:02
у меня и стандартный фильтр по строковым колонкам во всех броузах также работает по фрагментам строк. Это специальный шаблон, который активирует ввод значений для поиска при щелчке правой кнопкой мыши по заголовку колонки. Понимает отдельно строки, числа и даты, вызывая разные диалоги ввода значений. Плюс там тема по сохранению отборов и быстрому их выбору в дальнейшем
_TabogaInteractiveFilter, есть на фтп
WBR, morkovin

kreator
Ветеран
Сообщения: 3249
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

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

Сообщение kreator » 04 Июнь 2019, 10:13

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
Ветеран
Сообщения: 1220
Зарегистрирован: 25 Март 2009, 21:55

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

Сообщение gopstop2007 » 05 Июнь 2019, 10:42

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

kreator
Ветеран
Сообщения: 3249
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

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

Сообщение kreator » 09 Июнь 2019, 15:22

Чего-то у меня на ODBC не работает. Надо будет какой-нибудь старый проект на tps поднять. Там посмотреть.
We are hard at work… for you. :)

gopstop2007
Ветеран
Сообщения: 1220
Зарегистрирован: 25 Март 2009, 21:55

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

Сообщение gopstop2007 » 09 Июнь 2019, 15:59

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

Ответить