Если вы когда-нибудь создавали триггер по событию в QlikView, то обязательно сталкивались с тем, что кнопка «Назад» перестала работать. Сегодня Андрей Белобородов расскажет, как с этим бороться – сначала короткая версия, для опытных разработчиков, а затем – длинная, с подробной инструкцией для новичков. Ну и в конце статьи можно будет скачать qvw-файл с примером.
Итак, ты создал триггер по событию в QlikView, а кнопка «Назад» перестала работать. Связано это с тем, что кнопка работает не только с выборками, но и с переменными. Если они изменялись, то нажатие на кнопку «Назад» вернет тебя не к предыдущей выборке, как ты этого хочешь, а к предыдущему значению переменной (спойлер — тебе это на хрен не надо).
Что же делать?
Решение, на самом деле, просто как валенок. Достаточно создать несколько альтернативных состояний и по событию копировать выборки из одного в другое…
Алгоритм действий следующий:
- Создаем N альтернативных состояний, где N — это потенциальное количество шагов назад
- Создаем N триггеров «Copy State Contents» на событие «OnAnySelect», которые будут переносить выборки из одного состояния в другое.
- Создаем кнопку «Назад» с триггерами «Copy State Contents», но теперь уже в обратном направлении.
Скачать пример можно тут «Кнопка назад.qvw»
Для тех кто в танке, все подробно и с картинками 🙂
Создаем альтернативные состояния:
Вешаем триггер на событие «OnAnySelect»:
Важно: первый триггер копирует из предпоследнего в последний, следующий из пред-предпоследнего в предпоследний, ну и так далее…
Дошли до первого, который копирует выборки из состояния «$» (для тех, кто не учил матчасть — дефолтное состояние):
Вся эта ерунда работает вот так (я даже не поленился нарисовать):
Теперь создаем триггер для кнопки «Назад» (все то же самое, только в обратном направлении):
Важно: первый триггер копирует из второго в первый, следующий из третьего во второй, ну и так далее…
Как вся ерунда работает в обратном направлении я уже поленился нарисовать, сорьки 🙂
Эпилог
Вот ты и научился одному из некоторых вариантов, как сделать кнопку «Назад», если стандартный функционал QlikView не работает.
Есть еще как минимум пара способов как это сделать:
- Описанный случай, но только через переменную (если использовать триггер «Copy State Contents» в несуществующее состояние, то оно создается автоматически — можно с этим что-то придумать)
- Через «$N», где N — это переменная содержащая кол-во шагов назад. В этом случае придется прописывать эту хрень во всех формулах, а еще выборки не будут меняться. Короче так себе способ.
Дублирую ссылку на файл с примером: «Кнопка назад.qvw»
Увидимся в следующих выпусках!
Автор: Андрей Белобородов
Свежие комментарии