Как сделать пользовательскую сортировку дат в календаре QlikView? Вопрос вполне характерный для начинающего пользователя Qlik, поэтому сегодня по шагам расскажу, как создать удобный виджет для работы с динамическими календарями в QlikView, в котором можно выбрать любой интересующий пользователя период.
Виджет динамического календаря: Подготовка
Наш виджет будем создавать в простом приложении, где будут представлены данные по продажам в различных месяцах.
Скрипт выглядит достаточно просто: у нас загружаются данные по менеджерам по продажам, их должности, именам и фамилиям, территории.
Вот какая получается модель данных:
Состоит она из трех таблиц: заказы, менеджер, данные по продажам в определенном регионе и начисленным бонусам.
Итак, создадим сначала основной календарь. Для этого добавляем новую вкладку, нажав в рабочей области вкладок правой кнопки мыши, и дадим ей название «Календарь»:
НА ЗАМЕТКУ! Календарь Qlik – это таблица с данными по времени, которые вы выбрали для аналитики ваших данных.
Для работы с временем в QlikView встроены специальные функции дат и времени, которые преобразуют данные в даты и время. Подробно о функциях дат и времени в хэлпе.
Теперь переместим эту вкладку в конец набора вкладок и загрузим данные календаря qvd.
Для объединения данных используем поле [OrderDate] и выполним скрипт.
Так, мы добавили наш календарь в модель данных:
Теперь можно добавить листбоксы с фильтрами по месяцу и году в приложение:
Затем скроем заголовки и пустые годы в настройках отображения объектов.
Виджет динамического календаря: Инструкция по созданию
До этого момента мы не создали ничего необычного, и перейдем к созданию динамического календаря с выборкой любых периодов.
Шаг 1. После того как вы создали модель данных, включая календарь, вам нужно создать две переменные.
НА ЗАМЕТКУ! После создания переменных убедитесь, что формат даты совпадает с форматом даты поля, которое вы хотите использовать для сортировки дат.
Итак, вот переменные, которые мы должны создать: vFromDate и vToDate, где мы изменили формат даты, для совпадения с полем [Order Date].
Шаг 2. После создания переменных, мы создаем триггер, при котором пользователь, выбирая значение в каждой переменной, получает набор дат между началом и концом значений. По сути, вы создаете условие where в вашем наборе данных для фильтрации записей между датой начала и конечной датой.
Наше выражение в скрипте имеет вид:
LOAD… WHERE [Order Date] >= vFromDate and <= vEndDate
Шаг 3. Теперь вы можете использовать эти две переменные для выбора пользовательского набор дат. Но пользователь не всегда знает, как вести значение в эти поля, поэтому использование настоящего календаря в этом случае будет весьма полезным. Создайте два объекта календаря и назначьте каждую переменную для соответствующего объекта календарь.
НА ЗАМЕТКУ! Во вкладке Заголовок добавьте название календаря, Даты с…
Для второго календаря процедура создания аналогична первой.
Вот – теперь мы создали динамический календарь в QlikView!
До новых встреч! Хороших вам разработок с Qlik!
Добрый день!
Классная вещь этот динамический календарь! Вот только эта инструкция (в отличии от многих на вашем сайте;) не совсем понятна не сильно разбирающемуся человеку. Очень много моментов пропущено. Про скрипт не понятно зачем стали упоминать. Короче запутался я и не смог ничего дельного сделать. Пришлось найти оригинал видео на youtube и выполнить всё пошагово.
p.s. наверное стоит указывать ссылки на источник, раз вы размещаете их скрины с видео
p.s.s. Всё равно спасибо за статью! очень полезна оказалсь)
Согласен. Невнятно написано.
Повторить смог с трудом.