Привет, Qlik-мир! Сегодня расскажу о «гибком отчёте».

Сразу перейду к сути дела и расскажу, что это за зверь такой, «гибкий отчет», и зачем его использовать. Итак, начнем!

Гибкий отчёт: что это такое и зачем он нужен

Гибкий отчёт – это динамический объект, который позволяет произвести объемный и разносторонний анализ данных в разрезе многих измерений и показателей. Проще говоря – это многомерная таблица, которая имеет показатели и измерения, и мы можем сами выбирать, какие показатели и измерения видеть в конечном отчете.

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

Гибкий отчёт довольно прост в написании и позволяет рассмотреть лишь те данные, которые нам нужны. Такой отчёт следует применять, если есть большой «чарт», в котором много столбцов, которые нужны в разное время разным людям.

Гибкий отчет: инструкция по созданию

ШАГ 1. Конечно, чтобы создать гибкий отчёт, нам нужны данные, по которым мы хотим построить его. На основе этих данных, используя «Chart» составляем полную таблицу со всеми необходимыми измерениями и показателями.

источник данных QlikView

НА ЗАМЕТКУ! Не забываем прописывать показателям в Label правильные названия показателей, а не «SUM(Транзакции)-SUM(Транзакции Отменённые)».

Выписываем все названия измерений в столбик. Затем выписываем все Label, которые мы присвоили показателям.

Источник данных QlikView

Теперь нам нужно добавить к приложению 2 таблицы, состоящие из 1 столбца.

  • Таблица, содержащая названия показателей.
  • Таблица, содержащая названия измерений.

НА ЗАМЕТКУ! Стоит учесть, что для корректной работы нам нужно будет ещё значение, которое отображаться не будет (назову его dummy).

Редактор скрипта QlikView

Вносим в скрипт следующие изменения

Dimensions:

Measures:

После внесения в скрипт изменений перезагружаем приложение.

ШАГ 2. Заставляем отчет работать. Итак, мы получили громоздкий отчёт и 2 таблицы с названиями. Теперь нам нужно  сделать так, чтобы они друг с другом взаимодействовали.

Для начала создадим 2 объекта «Лист Бокс». По одному на каждую из наших 2-х новых таблиц.

Модель данных QlikView

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

Для того, чтобы наши фильтры не могли случайно повлиять на работу таблиц, то для них мы вводим альтернативное состояние и называем его так, как мы хотим. Я назову его viz.

Параметры документа QlikView

Теперь присвоим это альтернативное состояние двум нашим объектам «Лист Бокс».

Параметры документа QlikView

Хорошо, но ведь у нас всё ещё нет связи между отчётом, и этими таблицами, а введённое нами альтернативное состояние даже увеличило пропасть между ними.

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

Создаём сначала 2 переменные. Например:

  1. vDimensions
  2. vMeasures

Переменные QlikView

Теперь сделаем 2 макроса, которые будут изменять наши переменные так, чтобы мы могли из них вытащить нужные нам названия. Для этого открываем редактор макросов.

НА ЗАМЕТКУ! Чтобы быстро открыть редактор макросов используйте сочетание клавиш Ctrl+M или через меню программы QlikView Tool à Edit Module…

Редактор скрипта QlikView

Первый макрос для измерений OnSelectShowDimensions, а второй OnSelectShowMeasures соответственно для показателей.

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

Если всё правильно, то названия наших макросов появятся в левом верхнем окне, а сверху окна макросов будет надпись *** Ready ***.

Гибкий отчет: настраиваем фильтрацию

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

Для этого открываем Document Properties и переходим на закладку Triggers.

Параметры документа QlikView

Среди всех полей находим наши поля и для каждого проделываем следующую процедуру:

Жмём на кнопку Add Action, которая находится под On Select

Параметры документа QlikView

Нажимаем Add и выбираем в левом окне External, затем в правом — Run Macro и кликаем на OK.

Параметры документа QlikView

Теперь в Macro Name вписываем соответствующий макрос. Для Dimension у меня это OnSelectShowDimensions, а для Measure OnSelectShowMeasures.

Параметры документа QlikView

Теперь переменные, которые мы ввели, будут изменяться при выборе фильтров на наших двух объектах «Лист Бокс».

От статического отчета к гибкому

Отлично, но отчет пока все еще статический. Для того, чтобы превратить отчет в гибкий, используем нашу переменную.

Заходим в свойства отчёта, затем во вкладку Dimensions. И каждому нашему полю ставим галочку Enable Conditional и прописываем в окне ниже этой галочки такую строчку:

где вместо *Название поля* вписываем именно название измерения.

Параметры диаграммы QlikView

И так проделываем для каждого измерения.

Затем проделываем эту процедуру с показателями на закладке Expressions. Используя вместо *Название поля* тот Label, который мы им присвоили. А vDimensions заменяем на vMeasures (галочка там именуется как Conditional).

Пример:

Параметры диаграммы QlikView

Вот почти и все: у нас появился гибкий отчет в рабочем состоянии, но, как истинные BI-эстеты, мы не можем его оставить в таком виде:

Параметры документа QlikView

Гибкий отчет: наводим красоту

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

Для начала исключим ошибку. Для этого входим в свойства наших объектов «Лист Бокс» и заменяем Title на название Dimension или Measure. Значение Field устанавливаем <Expression> и вписываем в открывшееся окно следующее:

  • для Dimension
  • для Measure

Редактор выражений QlikView

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

Но в таком виде всё ещё плохо смотрятся текст-боксы. Надо их сделать красивее. На мой взгляд, намного лучше будет, если они будут отображаться как Check Box. Для этого заходим в свойствах объекта на закладку Presentation и выбираем в выпадающем списке Selection Style Override значение LED Check boxes.

Параметры документа QlikView

После всех этих процедур получаем красивый «гибкий отчёт».

Параметры документа QlikView

В «гибком отчёте» мы сами выбираем, что мы хотим видеть, и у нас только нужная нам информация. Ничего лишнего.

На этом все, красоту навели, задачу выполнили. Жду ваши комментарии и до новых встреч.