Локатор при работе через ODBC
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Я (правда не на ODBC, а на SQL драйвере ) делал локатор не как способ
позиционирования курсора в гигантском списке, а как способ усечения всей
выборки записей с позиционированием курсора на первую запись, то есть
работает так - ввел в поле локатора букву "И" - в browse остались только
записи с И в начале, потом "в" - остались Ив* и так далее. работало
довольно удобно и быстро, можно написать любую часть слова и получить
настолько точное подмножество из всех записей, которое требуется. Это
делалось через SQL оператор LIKE примерно так:
FilterString = '+A."NWMCat" like ''' & clip(CatNoLocatorString) & '%'' '
BRW1::View:Browse{prop:SQLFilter} = clip(FilterString)
здесь CatNoLocatorString - текущее значение строки локатора. % можно
поставить и впереди CatNoLocatorString, тогда будет выбираться все что
содержит данную подстроку.
Такой код реализовал усекающий локатор по NWMCat , который вызывался по
кнопке GO или можно и после каждого нажатия клавиатуры, это как угодно.
После такой манипуляции с View конечно нужно переотобразить view на экране
через ResetQueue.
Если PROP:SqlFilter работает для ODBC драйвера, то должно получиться.
С уважением,
Олег Чернов
Написал: ClaList(2)
позиционирования курсора в гигантском списке, а как способ усечения всей
выборки записей с позиционированием курсора на первую запись, то есть
работает так - ввел в поле локатора букву "И" - в browse остались только
записи с И в начале, потом "в" - остались Ив* и так далее. работало
довольно удобно и быстро, можно написать любую часть слова и получить
настолько точное подмножество из всех записей, которое требуется. Это
делалось через SQL оператор LIKE примерно так:
FilterString = '+A."NWMCat" like ''' & clip(CatNoLocatorString) & '%'' '
BRW1::View:Browse{prop:SQLFilter} = clip(FilterString)
здесь CatNoLocatorString - текущее значение строки локатора. % можно
поставить и впереди CatNoLocatorString, тогда будет выбираться все что
содержит данную подстроку.
Такой код реализовал усекающий локатор по NWMCat , который вызывался по
кнопке GO или можно и после каждого нажатия клавиатуры, это как угодно.
После такой манипуляции с View конечно нужно переотобразить view на экране
через ResetQueue.
Если PROP:SqlFilter работает для ODBC драйвера, то должно получиться.
С уважением,
Олег Чернов
Написал: ClaList(2)