Как сделать пользовательскую сортировку дат в календаре 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. Всё равно спасибо за статью! очень полезна оказалсь)
Согласен. Невнятно написано.
Повторить смог с трудом.