Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Всем привет.
Во время работы с QlikView встретился со следующей особенностью - поиск в поле (search in the list box) в QlikView в любом из трех вариантов ищет совпадение с начала строки. В случае поиска артикула 3611, QlikView выбирает все артикулы, которые начинаются с 3611 (3611, 36110, 36111 и так далее). Очевидно, что массив артикулов (3611, 36110, 36111 и так далее) не нужен, когда пользователь ищет только артикул 3611. Встала задача сделать поиск по точному совпадению в поле артикул.
Я решил, что поиск по точному совпадению в поле аналогичен выбору в поле (select in the field). Выбор в поле реализовал через поле ввода (input box) и триггер на ввод (variable event triggers on input). В качестве поисковой строки (search string) использую следующее выражение:
'('&subfield(var_articul_site,chr(10),1)&'|'&subfield(var_articul_site,chr(10),2)&'|'&subfield(var_articul_site,chr(10),3)&'|'&subfield(var_articul_site,chr(10),4)&'|'& ....&')'
где var_articul_site - это переменная из поля ввода, chr(10) - символ начала строки. Выражение сделано для случая, когда пользователь копирует артикулы из столбца (это основной случай использования).
Данное решение работает очень странно, а именно работает только для случая когда количество вводимых артикулов четное, а когда количество вводимых артикулов нечетное не работает. Кто-нибудь знает почему такое возможно?
Если кто-нибудь решал похожую задачу, как вы ее решили?
Нашел решение с использованием специального символа "|" в строке поиска.
Нашел решение с использованием специального символа "|" в строке поиска.
В строке поиска можно писать значения в круглых скобках для строгого поиска вашей строки, например:
(7032) (7041) для поиска 7032 и 7041, но не включая 7032001 и т.д.
Рекомендую посмотреть сводный документик по поиску тут: Qlik Sense Search Cheat Sheet
и комментарии там же.