Расширяемая панель фильтров с прокруткой для QV 11 – без расширений

Общей проблемой при создании панели QlikView является размещение окон списков. Часто пользователи хотят иметь возможность фильтровать несколько полей, но на приборной панели не хватает места для всех окон списков. Одно из решений этой проблемы это использование multiboxes, динамических окон списков или создание целых листов, посвященных размещению фильтров. Я хотел бы представить другой способ решения этой проблемы: фильтровочное дерево.

Рис 1

Фильтровочное дерево можно прокручивать, расширять/сворачивать и выбирать в списке размеров и их значений. Эти свойства позволяют использовать его вместо многих listboxes. Так как его можно прокручивать, он может содержать множество измерений и их значений. Расширение и сворачивание размеров позволяет пользователю ориентироваться в списках с легкостью. Этот механизм был разработан с точки зрения мобильности; он использует сводную таблицу и режим «переключения выбора» в QlikView для выбора отдельных возможностей на мобильных устройствах.

Я загрузил фильтровочное дерево QVW к GitHub и Branch. QVW включает в себя подпрограмму, которую можно вызвать для генерации всех необходимых данных и переменных. Есть также инструкции о том, как реализовать это, так как решение требует 2 триггеров полей.

Под капотом

Концепция, кторая движет этой функцией использует параметры в таблице, чтобы выполнить определенные действия. Это достигается путем создания таблицы остров с полями, на которые щелкает пользователь. Эти интерактивные поля имеют триггеры, которые очищаются при каждом выборе. Это делается для того, чтобы каждый раз, когда пользователь нажимает на поле, возможно было сделать только один выбор в поле. Перед запуском функции Очищение, таблица фильтруется и поэтому мы можем определить, какое значение было нажато. Затем, мы можем запустить действия, основанные на этом значении, прежде чем поле вновь очищается. Я проиллюстрирую это на примере:

Допустим, вы загрузили таблицу в QlikView следующим образом: SheetName, SheetID

Приборная панель, Лист1

Анализ, Лист2
Отчет, Лист3

На переднем конце, Вы можете создать действия на поле «SheetName» на триггере «onselect», которое сначала активирует текущий SheetID, а затем очищает поле SheetName:

Действие 1: Активационный Лист
ЛистID: =ЛистID
Действие 2: Очищение Поля
Поле: НазваниеЛиста

Теперь Вы просто должны отобразить SheetName таким образом, чтобы пользователь выбрал только одно значение за раз. Сводные таблицы хорошо для этого подходят. Если Вы создаете сводную таблицу с:

Измерение: НазваниеЛиста
Выражение: =1

 

Теперь у пользователя есть способ, чтобы выбрать один SheetName за раз. Если, например, они нажмут на кнопку «Dashboard»,  то действия будут отображаться так:

 

1) Активируйте Лист при помощи ЛистID “Лист1″
2) Очистите поле «НазваниеЛиста», чтобы перезапустить сводную таблицу

 

Фильтровочное дерево выше реализовывает эту концепцию и ее действия, позволяя конкретным строкам отображаться, а также запускать выбор в фактических данных приложения.

 

Эта концепция может выступать дополнением для постройки всех видов пользовательских функциональных ячеек таблицы при нажатии, таких как показ/скрытие предупреждений в таблице КПИ:

 

или иерархическое строение в списках, пользователи могут установить применение фильтров к данным:

 

Рис 2

Рис 3

 

 

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

64 queries in 0,216 seconds