Использование расширений при разработке приложений в Qlik Sense

by Андрей Белобородов
Использование расширений при разработке приложений в Qlik Sense

Как-то попросили у меня рассказать про мои любимые расширения и как они помогают облегчить разработку и улучшить интерфейс приложений. Вот что из этого вышло.


Сам я лично за то, чтобы создавать интерфейс приложения исходя из потребностей заказчика, вместо того, чтобы подгонять его «хотелки» под созданный кем-то шаблон или конструктор.

К счастью, всеми возможностями для этого Qlik Sense обладает, с использованием API можно интегрировать его хоть с пылесосом.

Но разработка приложения, назовем это «под ключ», требует значительно больше трудозатрат/времени/денег (нужное подчеркнуть) и заказчик не всегда готов идти на такие жертвы.

В связи с этим, на помощь всегда могут прийти расширения, написанные сторонними разработчиками. Они позволяют заполнить практически все пробелы функциональности системы «из коробки», и при правильном подборе могут сильно облегчить жизнь пользователям и разработчикам (хотя иногда бывает и наоборот...).


Мой топ расширений для Qlik Sense

Понятное дело, что расширений на сайте branch.qlik.com уйма. Есть хорошие, есть откровенно плохие.

Свой список я составил исходя из личного опыта, практической пользы, удобства использования и отсутствия багов:

  1. Sense-FieldUI - прикольная штука, позволяет делать красивые кнопочки, выпадающие списки, содержит в себе шрифт font-awesome (кто не знает, это огромная библиотека классных картинок, которые заходят под любой интерфейс);
  2. Show/Hide Container - контейнер, который позволяет по условию показывать/скрывать объекты, заменять их на другие. В общем вместе с ним можно навернуть прикольную логику взаимодействия пользователя с приложением;
  3. Climber Custom Report - аналог гибкого отчета, который все так любят. Лично я в нем смысла особого не вижу, ведь Qlik Sense по-сути и есть большой гибкий отчет. Но зачастую простые пользователи не хотят трогать режим редактирования своими руками, им на все одну кнопочку подавай;
  4. Sheet Navigation + Actions for Qlik Sense - отличное расширение для тех, кому не хватает кнопок в своем приложении. На них можно повесить кучу различных триггеров (как в старом добром QlikView) и радоваться жизни.
  5. SenseDateRangePicker - красивый календарик в стиле bootstrap. Позволит без особых усилий полностью избавиться от вопросов: «а как тут выбрать дату?».

Личный опыт, или рубрика «How to?»

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

Sense-FieldUI

Как-то раз от меня захотели, чтобы я разместил на листе кучу фильтров, а еще чтобы это выглядело «стильно, модно, молодежно».

Недолго думая, я пошел искать нужное расширение на сайт с расширениями (каламбурчик). После 5-10 минут поиска, я наткнулся на это чудо и сразу принялся изучать его.

В результате получилось вот что:

Каждой картинке соответствует свой набор фильтров. Если смысл картинки вдруг непонятен, то на помощь приходят всплывающие окна:

При нажатии по иконке, как видно на картинке выше, происходит переключение между наборами фильтров.

На самом деле, тут задействовано еще одно расширение «Show-Hide Container», о нем я расскажу чуть ниже.

А теперь пошагово о том, как сделать такой переключатель:

  1. Создаем островок данных:
/* Filter Settings */
_Filters:
Load * Inline [
    _Filter, 	_FilterSortWeight
    Customer,	1
    SKU,	2
    Employee,	3
    Calendar,	4
    Territory,	5
];

2. Добавляем расширение «Sense-FieldUI» на лист

3. В настройках расширения на вкладке «Dimensions» указываем наше поле «_Filter»:

4. На вкладке «Вид» в разделе «Settings» указываем настройки как на картинке (для достижения персонального эффекта, можно с этими настройками поиграться):

Важно подметить, что на то, какие картинки будут отображаться влияет текст, введенный в поле «Font-Awesome Icons».

У меня там введено: «calendar,shopping-cart,user,barcode,location-arrow»

Нужные названия, а так же сами картинки вы можете найти на сайте: https://fontawesome.com/

Идем дальше...





Show/Hide Container

Отличное расширение, позволяет замутить многоуровневую логику. Зачем? Да просто так!

Если серьезно, то люди нередко хотят видеть различные типы диаграмм, в зависимости от уровня вложенности. Например, на уровне страны отображается круговая диаграмма. Выбрали страну - отобразили динамику на столбчатой. Нажали на столбик, провалились в таблицу с подробностями.

Плодить сотню листов как-то не очень хочется, особенно если учесть появляющиеся вместе с этим трудности навигации (спасибо разработчикам, которые до сих пор не удосужились добавить возможность группировки листов, мер, измерений...).

Так вот, логика использования этого расширения крайне проста.

  1. Для начала создаем мастер-визуализации, в моем случае это несколько разных объектов с фильтрами:

2. Затем добавляем на лист контейнер, и в его свойствах добавляем мастер-объекты с условием их отображения:

3. Условие отображения:

=If(Only([_Filter]) = 'Customer',1,0)

Следует подметить, что отображение объектов не всегда корректно работает с этим расширением. Каждый случай требует отдельного рассмотрения.

Например, если положить в этот контейнер фильтры, то они перестанут скрываться полностью, до уровня, когда отображаются лишь три точки при масштабировании:

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


Статья потихоньку начала превращаться в длиннопост, об остальных экстеншенах расскажу в следующей статье:)

Если вам понравилась статья или у вас есть предложения, пишите мне на почту: me@andbel.it

May 25, 2018
by Андрей Белобородов
Qlik
Разработка
Лучшие практики