10 Replies Latest reply: Apr 27, 2015 2:54 PM by Anna Klimkova RSS

    Автоопределение параметров на карте (Qlik sense)

    Максим Шагубаков

      Здравствуйте

       

      У меня следующий вопрос - настроил карту, на ней есть выбор года и месяца

      Как я понял - есть возможность сделать сценарий, чтобы они заполнялись автоматически

      Можете дать ссылку или описать, как это сделать в Qlik sense?

      Заранее спасибо

        • Re: Автоопределение параметров на карте (Qlik sense)
          Sergey Polekhin

          Максим, можете более четко сформулировать вопрос?

          Что за карта? О каком выборе года и месяца "на карте" идет речь?

            • Re: Автоопределение параметров на карте (Qlik sense)
              Максим Шагубаков

              Да, Сергей
              Описываю подробнее
              Есть лист (карта- это название представления из предыдущего продукта, постараюсь больше им пользоваться, чтобы не путать)
              На нем две диаграммы и два фильтра по измерениям (год и месяц)

              Пока вытащил отдельно, так как не удалось настроить удобный выбор года-месяца в одном фильтре

              Но речь не об этом

               

              При открытии листа пользователем мне надо, чтобы автоматически установился фильтр по текущему году и месяцу.

              И хорошо бы при выборе фильтра вывести в заголовке диаграммы информацию о текущем периоде

              2015-03-20_093300.png

                • Re: Автоопределение параметров на карте (Qlik sense)
                  Sergey Polekhin

                  Максим, добрый день,

                   

                  1. Вывести текущий период в заголовке диаграммы возможно с использованием стандартной формулы вроде
                    ='Данные за период: ' & Only(Месяц) & '  ' & Only(Год). Эта формула подойдет при выборе единичного значения месяца и года.
                  2. Связывание же интерфейсных действий пользователя с выборами значений полях в Qlik Sense на данный момент возможно только с использованием Qlik Sense API. В частности, с использованием метода app.field.select (см. https://help.qlik.com/sense/en-us/developer/#../Subsystems/Workbench/Content/BuildingWebsites/API/Methods/select-method.htm?Highlight=select field)
                    • т.е. для того чтобы это настроить - нужно заняться разработкой на JavaScript.
                    • Re: Автоопределение параметров на карте (Qlik sense)
                      Максим Шагубаков

                      Приветствую, Сергей

                      Спасибо за ответ.
                      Ок, я понял, что надо использовать API и функцию app.field.select

                       

                      Возникло еще больше вопросов:)

                       

                      1. Разработка ведется в QlikSense Workbench?

                      2. Если у меня версия QlikSense 1.0.3 - мне надо эту среду установить из отдельного дистрибутива?

                      3. Есть ли пример того, как создать подобный функционал для карты?

                       

                      Я нашел Getting started для создания визуализаций и мэшапов (не знаю, как принято переводить этот термин на русский), но мне кажется, что нужно что-то другое.

                      Поправьте пожалуйста, если это не так.

                        • Re: Автоопределение параметров на карте (Qlik sense)
                          Sergey Polekhin

                          Максим, добрый день,

                           

                          Вы копаете в правильную сторону в части "Getting started для создания визуализаций и мэшапов".

                           

                          Поэтому дам лишь общее представление о процессе, не вдаваясь в глубокие технические детали:

                          1. Некоторое (значительное) количество функционала реализованного в составе движка Qlik Sense Engine на данный момент недоступно пользователю с использованием штатного графического интерфейса (разработчики Qlik Sense пока не весь функционал успели вынести на уровень пользователя). Поэтому использование этого функционала сопряжено с необходимостью обращения к нему только с использованием интерфейсов прикладного программирования Qlik Sense API. По сути Qlik Sense API - это интерфейсы (библиотеки, функции и модули) реализованные на JavaScript. Вещи связанные с визуализацией реализуются стандартным функционалом HTML5, представляющим из себя комбинацию технологий HTML, JavaScript и CSS.
                          2. Поскольку основополагающими инструментами формирования и обработки результатов вызова API является HTML5 (HTML, JavaScript и CSS), то для разработки кода HTML/JavaScript/CSS сгодится любой доступный и привычный вам инструментарий:
                            1. Начиная от обычных или расширенных текстовых редакторов Windows Notepad, Notepad ++ или Sublime
                            2. И заканчивая полноценными средами разработки, например, Microsoft Visual Studio.
                            3. При желании, вы можете использовать и встроенный редактор Qlik Sense Workbench, преимуществом которого является возможность не только написания необходимого программного кода "с нуля", но и использования для этого встроенных в Qlik Sense Workbench шаблонов, позволяющих разобраться с общими принципами разработки и сократить время написания нужного вам функционала. Очевидно, что существующие в Qlik Sense Workbench шаблоны можно брать в виде as-is и дорабатывать в любом описанном выше инструментарии.
                              1. Qlik Sense Workbench доступен в любой версии Qlik Sense Desktop
                              2. В серверной редакции Qlik Sense он доступен начиная с версии 1.1 выпущенной в феврале 2015 г.
                          3. В результате программный код, разработанный в любом из описанных выше инструментов, должен быть помещен на сервер Qlik Sense в виде так называемого "Расширения" (Qlik Sense Extension). Qlik Sense поддерживает несколько видов расширений, основными из которых являются Qlik Sense Visual Extension и Qlik Sense Mashup Extension. Технические границы между ними весьма условны, но позволяют определить смысл выполняемой вами разработки:
                            1. Visual Extension направлен на создание нового объекта Qlik Sense, доступного конечному пользователю для самостоятельного использования и обеспечивающего требуемый вид визуализации данных.
                            2. Mashup Extension - это по сути интегрированный набор веб-страниц (веб-сайт), на который интегрирована информация из различных источников: информация с других веб-сайтов, объекты визуализации одного или нескольких приложений Qlik Sense и т.д. Т.е. по сути это и позволяет получить то, что называется "смесь", или по английски "Mashup".
                            3. В зависимости от смысла выполняемой разработки, разрабатываемый вами код (визуализация + поведение пользователя) создается как объект визуализаци Qlik Sense (Visual Extension), либо как Mashup Extension, либо как комбинация обоих видов Расширений (Extensions).
                          4. К сожалению, готовых примеров пока не много. Поэтому предлагаю пока ориентироваться на примеры расширений и шаблоны входящие в состав Qlik Sense. Мы с коллегами работаем над созданием большего количества примеров, но пока не хватает на все времени.


                          С уважением,

                          Сергей Полехин.

                            • Re: Автоопределение параметров на карте (Qlik sense)
                              Максим Шагубаков

                              Сергей, добрый день

                              Наконец-то удалось продолжить изыскания...

                               

                              Я обновил QlikSense до версии 1.1, зашел в Workbench

                               

                              Но пока не понимаю логику создания расширений с ее помощью.

                              Можете рассказать на пальцах на примере простой задачки:

                              при открытии моего листа я хочу вывести сообщение пользователю Hello, world

                              Что мне для этого надо сделать?

                              Может быть где-то описано, как подключать мои расширения?

                                • Re: Автоопределение параметров на карте (Qlik sense)
                                  Sergey Polekhin

                                  Максим, добрый день,

                                   

                                  Решение описанной вами задачи "Hello World" предлагается в виде готового расширения, устанавливаемого вместе с Qlik Sense Desktop.

                                   

                                  1. Найти набор примеров расширений вы можете после установки Qlik Sense Desktop в папке:
                                    %USERPROFILE%\Documents\Qlik\Examples\Extensions
                                    Например, в папке %USERPROFILE%\Documents\Qlik\Examples\Extensions\HelloWorld вы сможете найти то самое расширение Hello World. Проанализировав его код, вы по аналогии сможете создать свое собственное расширение. Очевидно, что при построении чего-то более сложного, вам потребуется более глубокое знание JavaScript и Qlik Sense API.
                                  2. Для того, чтобы увидеть необходимое расширение в Qlik Sense Desktop, например, для включения его в состав ваших документов или редактирования средствами Qlik Sense Workbench, оно должно быть расположено в правильной папке:  %USERPROFILE%\Documents\Qlik\Sense\Extensions
                                    В качестве примера, вы можете скопировать папку расширения HelloWorld (со всем ее содержимым) из папки %USERPROFILE%\Documents\Qlik\Examples\Extensions в папку %USERPROFILE%\Documents\Qlik\Sense\Extensions и перезапустить Qlik Sense Desktop.
                                  3. Как уже писал выше, Workbench по сути является встроенным редактором, в котором вы можете писать необходимый вам код HTML/JavaScript/CSS, однако вы можете делать это в любых других привычных или удобных для вас инструментах. Итоговое расширение со всем набором соответствующих ему файлов вы должны скопировать в правильную папку (см.пп. 2 выше), откуда их "подхватит" Qlik Sense.
                          • Re: Автоопределение параметров на карте (Qlik sense)
                            Anna Klimkova

                            Максим,

                            я бы предложила не усложнять себе жизнь и воспользоваться стандарными средствами для начала.

                             

                            А именно, применить set analysis для всех формул на вашем листе, где должны быть расчеты за текущий месяц-год. Например, выбрав его фунцией max() или monthstart(today()):

                             

                            sum ({<МесГод = {'$(=max({1} МесГод))'}, Год=, Месяц=>} [Прибыль Млн.руб.])

                            Данная формула жестко ставит фильтр по последнему месяц-году, игнорируя текущие фильтры по полям МесГод, Год, Месяц. Остальные фильтры будут влиять на расчеты как обычно.

                             

                            И конечно, с помощью текстового объекта донести до пользователя, что данный лист работает именно для текущего месяца.

                            ='Дашборд за '& max({1} МесГод)

                            или = 'Дашборд за '&date(monthstart(today()), 'MMMM YYYY')

                             

                            В скрипте загрузки создайте поле МесГод так:

                            Date( Monthstart (Дата), 'MMM-YYYY') AS МесГод,

                             

                             

                            За счет того, что поле будет типа Дата, то сортировка в фильтре будет работать правильно.