Отчет 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 в разработке?