Отчет QlikView

Сегодня я хочу показать метод универсального построения отчетов, вот в таком стиле, как на картинке выше, то есть количество строк (показателей) известно заранее, а вот данные каждого показателя могут рассчитываться по разным принципам.

Когда поможет такой метод? Например, когда в строках отчета необходимо рассчитывать и отображать результат по совершенно разным формулам, да ещё и по совершенно разным источникам в модели даных, где встречаются строки “в том числе” или строки, суммирующие частично другие строки.

Итак, приступим.

Исходные данные:

Итак, рассмотрим модель данных, в которую собраны воедино данные из разных источников. Тут и баланс, и доходы/расходы и разные разрезы (кредиты), прочие формы. Всё это собрано и объединено в одну модель:
Модель данных QlikView

А нам требуется составить отчет, в котором вперемешку собраны разные показатели (в справочнике):
Справочник отчета QlikView

Справочник, как мы видим, создается отвязанным от модели (таблица с другими таблицами не соединяется). Главное в справочнике:

  • нумерация наименований показателей (необходима для задания порядка вывода строк отчета),
  • сами наименования,
  • уровень показателя (необходим для определения отступа и раскраски строк отчета).

В справочнике могут быть и другие вспомогательные и информационные колонки.

Вспомогательные переменные:

Для расчета некоторых показателей необходимо не только знать саму дату, на которую надо рассчитать отчет, но ещё и дату на начало периода, относительно которой в отчете рассчитывается динамика (изменение показателя), поэтому введем две переменные:

(вторая переменная рассчитывает начало периода, в нашем случае – квартал)

Построение отчета: 

Создаем обычную Прямую таблицу (“Straight Table”). В качестве её дименшина указываем расчетную формулу:

Особенности расчетной формулы:

  • в начале формулы делаем сдвиг в зависимости от указанного уровня показателя отчета.
  • наименования некоторых показателей “достраиваются” налету, исходя из выбранной отчетной даты.
  • если длина наименования показателя третьего уровня больше 40 (подбирается в зависимости от ширины колонки в нашем отчете), то делается принудительный перенос по ближайшему пробелу, чтобы самим выровнять вторую (перенесенную) строчку до уровня сдвига первой. 

Произвольная формула для каждой строки отчета:

Основная идея построения универсального отчета по показателям – для каждой  известной строки отчета мы можем указать свою произвольную формулу.

  1. Для этого формула выражения на вкладке Выражение (Expressions) должна выглядеть примерно так:

Как видим, здесь для каждого номера строки (_ОТЧЕТ_СОРТИРОВКА) с помощью функции Pick ():

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

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

Для первых 5 строк отчета мы прописали формулы и получили :Pick() QlikView

  1. Продолжаем добавлять строки в наше выражение для каждой строки отчета:

После добавления этих строк получили:Pick() QlikViewОформление финансового отчета в QlikView 

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

  1. На вкладке Выражения (Expressions):
  • Раскроем {+} и для Цвет фона (“Background Color”) пропишем условие:

Pick() QlikView   

  • Для Цвет текста (“Text Color”) пропишем формулу:

Pick() QlikView

  • Для Формат текста (“Text Format”) пропишем просто константу:

    Pick() QlikView  
  • Переключим режим Полное накопление (“Total Mode”) на Без накопления (“No Totals”).
  1. На вкладке Измерения (Dimensions):
  • Раскроем {+} только у нашего дименшина и в Цвет фона (“Background Color”) пропишем то же самое условие, что и делали выше:
    Pick(_ОТЧЕТ_УРОВЕНЬ, RGB(72,105,138), RGB(192,192,192) )
  • В Цвет текста (“Text Color”) аналогично:
    Pick(_ОТЧЕТ_УРОВЕНЬ, RGB(255,255,255), RGB(0,0,0) )
  • В Формат текста (“Text Format”) пропишем своё условие:
    Pick(_ОТЧЕТ_УРОВЕНЬ, <b>)
  • Включим галочку «Скрыть, когда значения Null» (“Suppress When Value Is Null”).Pick() QlikView
  1. На вкладке Представление (Presentation) нам нужно убрать галочку «Скрыть нулевые значения» (“Suppress Zero-Values”). Это необходимо, чтобы отобразились все строки отчета, включая те, которые являются заголовками или не имеющие сумм.Pick() QlikView

Получили следующее:Pick() QlikView

  1. Остаемся на вкладке Представление (Presentation):
  • Выключаем галочки Разрешить перетаскивание (“Allow Drag and Drop”), Индикаторы сортироваки (“Sort Indicator”) и Индикаторы выбора (“Selection Indicators”).
  • Очистим галочки для Нулевое значение (“Null Symbol”) и Пропущенные значения (“Missing Symbol”).
  • Включим галочку Скрыть строку заголовка (“Suppress Header Row”)
  • Включим галочку Перенос в ячейках (“Wrap Cell Text”) и впишем в Высота ячейки (“Cell Height”) = 3.

Pick() QlikView

  1. На вкладке Заголовок (Caption) прописываем нужный заголовок отчета и оставляем нужные Специальные значки (“Special Icons”).Pick() QlikView

Вот и получился наш отчет:Pick() QlikView

Расскажите, какие  вы хитрости используете для создания отчетов в QlikView? Как используете функцию pick в разработке?