Один из тех подходов, который я часто использую при работе с QlikView – использование динамических измерений и выражений, которые работают при нажатии на кнопки в приложениях. На мой взгляд, это дает больше свободы, чем работа с отдельными циклическими группами или измерениями, особенно если вы работаете сразу с несколькими диаграммами одновременно. В QlikView реализация этой задачи очевидна – создали вычисляемое измерение, а дальше уже дело техники (за пару минут уже все готово), но в Qlik Sense все несколько иначе. В этой статье как раз и покажу, как это сделать в Qlik Sense с минимальными трудозатраты и максимальной пользой.
Кнопки переключения в Qlik: Обзор
Если вы знаете, как создать набор переменных по щелчку в QlikView, то тогда вычисляемые измерения вы создадите быстро и добавите набор выражений за несколько простых шагов. НО однажды, я столкнулся с задачей сделать аналогичную процедуру не в QlikView, а в Qlik Sense. Немного подумав над реализацией задачи, я понял, что для этого нужно создавать собственное расширение. Но для этого у меня не было времени. Поэтому возникла иная идея, которая помогла в этом случае.
Ловушка расширений Qlik
Конечно, наличие огромной площадки с расширениями Qlik Sense дает множество преимуществ, но использовать эту площадку нужно с умом, потому что наличие большого количества открытых разработок не гарантирует их качество. Конечно, вы можете скачать расширение, созданное разработчиком с открытой платформы, но какие гарантии, что это расширение будет совместимо с новыми версиями Sense? Поэтому решение моей задачи видится таким образом – найти расширение на Branch, которое работает с переменной по щелчку, также расширение должно поддерживаться командой разработчиков Qlik. Такое расширение нашлось на Qlik Branch у сотрудника Qlik, Стэфана Вэлсера.
Но в этом расширении есть один существенный недостаток для моей задачи – здесь нельзя настроить цвета кнопок на основе значения переменных, хотя при этом можно установить выражения на кнопки.
Создаем кнопку-переключатель в Qlik Sense
После того как мы установили это расширение Qlik Sense к себе, мы можем создать набор кнопок переключения в таком стиле:
Поскольку у нас нет цвета, то для того, чтобы показать, что кнопка активна, мы используем точки на кнопке. А для того чтобы иметь переменную, которая работает по щелчку на кнопке, мы добавляем в скрипт загрузки такую строку кода:
let vDim = ‘Product’;
Теперь для того чтобы изменить переменную, нам нужно несколько кнопок, по одной кнопке для каждой настройки. Итак, добавим наше расширение на лист приложения Qlik Sense:
Сделаем необходимые настройки.
Во вкладке основные (General) отключим заголовки и детали:
Параметр стиль (Style) определяет цвет кнопки. Вы должны настроить основной цвет, а также убрать иконки и сделать кнопку на полную ширину. В настройках слоя изменим параметры ярлыка на следующие:
Учитывая, что изначально задача наших кнопок – навигация, но мы не будем это использовать в этот раз, мы отключим эту настройку:
Идем во вкладку действия (Actions). Активируем настройку Apply Action Before Navigation, а затем выбираем Set Variable. Теперь называем нашу переменную, а также указываем ее значение:
Теперь у нас есть кнопка, которая устанавливает переменную, но мы не можем видеть установлена ли эта переменная. Для этого нужно добавить немного кода к ярлыку, но поскольку он будет один и тот же для каждой группы переключателей, поэтому сделаем этот код в виде переменной.
Эту переменную создадим через скрипт загрузки:
set vBtnLegend = if($2 = ‘$3’, ‘● ‘, ») & ‘$1’ & if($2 = ‘$3’, ‘ ●’, »);
Этот код состоит из трех параметров: первый параметр читает текст на кнопке, второй – определяет установленное имя переменной, в нашем случае vDim, а третий параметр – это значение, которое устанавливает тип кнопки. Значение ярлыку всегда возвращается через параметр, опционально он опосредован знаком ● ( =chr(9679) ). Эта выражение используется в настройках ярлыка.
Полный код:
=’$(=$(vBtnLegend(Product, vDim, Product)))’
НА ЗАМЕТКУ! Знак доллара нужен для того, чтобы переменные работали с параметрами.
Имея разные переменные, одно и то же расширение и переменная с легендой кнопок, может использоваться в одном и том же приложении для переключения разных состояний:
После того как вы установили переменные, вы можете применять их как вычисляемые измерения в QlikView или динамические выражения в диаграммах Qlik Sense.
На это все на сегодня! Интересных вам разработок с QlikView и Qlik Sense!
Свежие комментарии