Последовательный выбор двух параметров одним экшеном
Редко пишу такие технические статьи про Табло, но недавно придумал довольно интересное решение, захотелось им поделиться.
Идея: при кликах в один и тот же график менять последовательно два параметра — первый клик меняем один параметр, второй клик — меняем второй параметр. Например, можно использовать для выбора метрик для двух осей скеттер плота или придумать какие-то другие более необычные кейсы.
Давайте рассмотрим как это сделать. Эта инструкция подойдёт только для данных в широком формате, при подключении статичных файлов перевернуть таблицу можно при помощи встроенной функции Pivot.
1) Делаем счётчик кликов в график. Для этого создаём INT параметр Counter и поле Counter + 1, которое будет прибавлять количество кликов
2) Создаем два одинаковых параметра для выбора метрика. Это текстовые параметры, которые берут значения из поля Pivot Fields Names при открытии книги.
3) Создаём поля, которые проверяют какой сейчас номер клика в визуализацию и возвращают либо то же самое значение, что уже было выбрано, либо выбирают новое.
Selected Metric 1 Check // Название поля
IIF([Counter]%2=0,[Pivot Field Names],[Select Metric 1]) //Делает проверку остатка от деления на 2, если равно нулю, то клик «четный» и надо поменять значение, если «нечетный» то возвращаем текущее значение параметра
Для выбора второй метрики будет зеркальная формула:
Selected Metric 2 Check
IIF([Counter]%2!=0,[Pivot Field Names],[Select Metric 2])
С помощью остатка от деления можно считать и третий, и четвертый клик и т. п.
4) Делаем расчетные поля, которые подставляют нужную метрику в зависимости от параметра. Эти поля мы и будем выводить на график.
Selected Metric 1
IIF([Select Metric 1]=[Pivot Field Names],[Pivot Field Values],NULL)
Selected Metric 2
IIF([Select Metric 2]=[Pivot Field Names],[Pivot Field Values],NULL)
5) Создаём график с которого будет происходит управление. Я сделал для этого фактоиды. Важно положить все расчетные поля в details, чтобы мы могли использовать их в Parameters Actions.
6) Создаём график в котором будут выбираться метрики
7) Делаем дашборд и настраиваем три параметр экшена. Первый про изменение счётчика при клике.
Два вторых про изменение выбранной метрики
8) Наводим марафет и добавляем всякий приятности типа подсказки, деселекта хайлата и т. п. Получаем рабочую версию. Можете покликать и посмотреть как будет меняться значение Counter и выбранных метрик для осей. На Паблике можно скачать книгу и покопаться как устроено.
___
Итоги
Рассмотренный кейс довольно специфичный и, наверное, не является лучшей практикой UX паттернов, но с помощью него хотел показать, что возможности Табло по сложным интерфейсам — очень большие. Используя параметр экшены и счётчики можно сделать почти всё что угодно. Например, выводить какую-то надпись, если кликнули больше 100 раз. =)
Использовал приём с двумя параметрами для вот этой работы, получилось довольно удобно, но работает не супер быстро, много точек на графиках.