Конструктор отчетов

Обзор

Конструктор отчетов является инструментом, который позволяет легко создавать отчеты, а также выгружать необходимые данные напрямую с БД. Сложность создаваемых отчетов полностью зависит от уровня знаний SQL пользователем.

Чтобы открыть конструктор отчетов необходимо перейти у вкладку "Еще-Отчеты" и выбрать "Конструктор":

После нажатия откроется окно создания/изменения отчетов.

Окно выбора отчета

В этом окне пользователь может либо создать новый отчет, нажав кнопку "Новый", либо проводить действия з уже существующими отчетами.

Чтобы изменить существующий отчет - его необходимо выбрать со списка в поле "Отчет": В этом окне отчеты разбиты по категориям. После выбора нужного отчета для пользователя станут активны действия с ним. С отчетом можно совершать следующие базовые действия:

  • Изменить - необходимо нажать кнопку "Изменить" - откроется конструктор создания отчета, с уже заполненными данными из выбранного отчета. Работа с конструктором описана ниже;

  • Сохранить - необходимо нажать кнопку "Сохранить" - сохраняет изменения в отчет, кнопка неактивна, если нету изменений;

  • Отмена действий - необходимо нажать кнопку "Отмена" - отменяет внесенные изменения в отчет, кнопка неактивна, если нету изменений;

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

  • База данных - открывает базу данных, детально описано в разделе Работа з базой данных;

  • Сохранить как - позволяет повторно сохранить отчет с новым названием, даже если не было изменений;

  • Изменить категорию - позволяет переместить отчет в другую категорию (например Сток, Продажи, Анализ OOS, и тд.);

  • Расписание - позволяет настроить рассылку отчета на электронную почту. Настройка производится в следующем окне:В этом окне пользователь выбирает день недели, время, кому отправлять, какое оглавления и текст письма должны быть. К настроенному письму будет прикреплено файл с данными с отчета.

  • Доступ - позволяет выбрать у кого будет доступ к отчету:"Только я" - доступ только у пользователя который создал;"Только администраторы" - доступ только у пользователей с правами администратора;"Все" - доступ открыт для всех пользователей;

  • Экспорт отчета - позволяет выгрузить выбранный отчет в excel;

  • Импорт отчета - позволяет загрузить отчет в виде sql запроса из файла.

Базовые SQL запросы

Создание отчета

После нажатия "Новый" в окне выбора отчета откроется конструктор нового отчета:

В конструкторе отчета есть три блока:

  • Скрипт, категория - блок в котором прописывается сам SQL запрос. Описан в разделе Работа с запросом;

  • Таблица - блок в котором добавляются и настраиваются колонки отчета. Описан в разделе Работа с колонками;

  • Параметры - блок в котором настраиваются изменяемые параметры для запуска отчета. Описан в разделе Работа с параметрами;

Работа с запросами

В этом блоке пользователь прописывает sql запрос, который должен будет выгрузить данные с таблиц в БД. Запросы пишутся на языке SQL. Для написания запросов необходимо иметь базовый навык программирования на SQL. Для получения базового навыка есть множество вводных курсов по SQL в интернете. Выучить SQL на базовом уровне можно в кратчайшие сроки (до 1 дня).

Базовые запросы, необходимые для создания базовых отчетов описаны в разделе Базовые SQL запросы.

В этом блоке документации описаны возможны действия с уже написанным блоком sql кода, работа с базовыми запросами, которые необходимы для создания базовых отчетов описана в разделе Базовые SQL запросы.

Код SQL запроса вводится в блоке "Скрипт, Категория:":

После того, как код скрипта написан с ним возможны следующие операции:

  • Запуск для проверки - для запуска отчета необходимо нажать кнопку . После нажатия кнопки начнется выполнения скрипта, оно может занять от нескольких секунд до минут, в зависимости от сложности и объема данных, которые выгружаются. Если компилятор кода увидит ошибку в коде - он её выведет внизу в красном блоке:

    Если ошибок нету - внизу окна появится сообщение, что отчет загружается, и по окончании загрузки откроется окно с результатом запроса. Если запрос теоретически может выводить более 10000 тыс строк, желательно для его проверки использовать ограничения TOP 1000 или TOP 10000 после команды SELECT;

  • Остановка отчета - если отчет очень долго грузится, или же вы просто решили остановить выполнения - это можно сделать нажав на ◼︎. Эта кнопка становится красной и активной, когда запущено выполнение отчета.

  • Перенос выбранных в SELECT полей в колонки отчета. Колонки в отчет добавляются всегда с запроса. Для добавления колонок необходимо нажать кнопку . После нажатия система сама определит колонки и их названия и добавит их к отчету:

    Также эти колонки система выведет в блоке "Таблица", где вы сможете их настроить. Настройка колонок описана в разделе "Работа с колонками". Система автоматически добавляет все колонки. Ненужные удаляются нажатием на ❎. Позже их можно будет добавить с блока "Таблица".

  • Перенос параметров отчета в поле "Параметры" для настройки. Для переноса параметров необходимо нажать ➡️. После нажатия система сама определит что является параметрами и перенесет их названия в поле "Параметры". Не перенесенные параметры отображаются в редакторе sql запроса красным цветом, а перенесенные - зеленым. Каждый параметр необходимо настроить, как их настраивать и в каких форматах могут быть параметры в коде sql запроса описано в блоке "Работа с параметрами.

Работа с колонками

Все поля выбранные через SELECT в sql запросе отображаются в двух местах - сверху над конструктором и в блоке "Таблица":

Изначально все поля автоматически добавляются в отчет после нажатия кнопки  в окне ⬆️ sql запроса, и отображаются сверху над конструктором и в блоке "Таблица". После удаления любого поля, его можно потом добавить обратно нажав на + возле его названия в блоке "Таблицы". 
Также можно менять очередность отображения полей - просто перетаскивая их названия в верхнем блоке. Также можно менять и размер колонок - растягивая их. Вид колонок в верхнем блоке полностью отвечает тому, как они отобразятся и в отчете.

Для изменения параметров поля необходимо нажать на его название - после этого откроется окно со следующими параметрами:

  • Style All - редактирования общего стиля отчета. Процесс аналогичен редактированию в любом другом текстовом редакторе;

  • Expand by - детально это поле описано в разделе Extend By и Group By;

    Group by - детально это поле описано в разделе Extend By и Group By;

  • Название - пользователь задает как будет называться эта колонка в отчете;

  • Код поля - указывает какие данные тянуть в колонку. Например есть запрос:
    SELECT SKU_ID SKU, STORE_ID STORE FROM SALES_SKU
    Если в настройках колонки SKU поставить код поля STORE, то в отчете в колонке SKU будут отображаться данные из колонки STORE. Но это возможно только если отображается одна колонка SKU, если отображаются колонки и SKU и STORE - тогда добавить код поля не получится.
    Нельзя добавлять код поля на то же поле.

  • Тип данных - выбор какой тип данных должен отображаться в поле. Поддерживаются следующие типы данных:

    • Текст - для текстовых полей - например "Название товара";

    • Число - для числовых полей - например "Продажи в штуках";

    • Дата - для полей с любым форматом даты - например "Неделя продаж" или "Дата продажи";

  • Формат - это поле появляется если выбрать тип данных "Число" или "Дата".

  • Ссылка - позволяет добавить ссылку на другую страницу, данные или что то еще. Например есть запрос:
    SELECT SKU_ID SKU, SITE_LINK LINK FROM MONITORING
    Колонка SKU выводит кода товаров, а колонка LINK ссылки на сайт. В этом случае если в настройках колонки SKU выбрать в поле "Ссылка" ссылку на LINK - то потом в отчете при нажатии на номер в колонке SKU будет открываться ссылка из колонки LINK.
    Ссылку можно добавлять только на другие колонки;

  • Ширина - пользователь может ограничить возможною ширину поля в отчете. Значение нужно вводить в пикселях. Если ширина auto, то поле будет растянуто до размеров текста.

  • Style Сell - редактирование отдельного стиля для отображения информации в отчете. Процесс аналогичен редактированию в любом другом текстовом редакторе;

Extend By и Group By

Эти два поля настройки колонки всегда задаются вместе. Эти параметры позволяют реализовать кросс-колонки - когда в одной колонке отображаются множественные данные из других колонок.

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

  • Пользователь создал запрос для вывода продаж на первой недели за последние 5 лет для выбранного товара 56 по всем магазинам (Магазин 1 и Магазин 2):

  • В результате он получил следующий отчет:

    Можно увидеть, что отчет вывел 10 строк, при этом в не очень удобном формате. Намного удобней было бы, если бы все недели и продажи отображались в одной строке с товаром, тогда было бы только две строки, для каждого магазина. Вот в таком виде:

  • Для таких трансформаций необходимо пользоваться Expand By. Для начала необходимо убрать из отображения колонку, данные из которой необходимо будет развернуть и вставить в другую колонку. В этом примере - это колонка с неделями - WEEK WK. Поэтому необходимо сверху в строке колонок нажать на  возле колонки WEEK;

  • Следующий шаг - нажать на  возле колонки в которой необходимо отобразить другую колонку. В нашем случае это колонки Sales и Stock - поэтому нажимаем на кнопку возле обеих колонок - после нажатия отобразится какая колонка должна отображаться внутри - в нашем случае это WK (Week);

  • После этого WK также отображается в поле Expand By в настройках соответствующих колонок. Для Expand by можно использовать любые колонки, которые не отображаются в отчете, но при этом есть в запросе. Дальше необходимо настроить по какой колонке будут группироваться данные. В этом примере необходимо, чтобы данные группировались по магазинам - то есть в поле Group by необходимо выбрать STR (название колонки, которая вытягивает данные по магазинам в sql запросе). Выбирать Group by можно только для одной колонки, в другие колонки с Expand by этот выбор подтянется автоматически. 

  • После завершения всех настроек можно нажать на ▶️ и увидеть как отображаются данные:

Работа с параметрами

Параметры - это величины, которые пользователь выбирает во время запуска отчета. Это позволяет выбирать только те данные, которые соответствуют критериям пользователя.

Параметры автоматически переносятся с кода в sql редакторе в блок "Параметры" после нажатия на кнопку . После того как параметры появились в блоке "Параметры" их можно настроить.

Параметры бывают двух типов:

  • :parameter - такие параметры передают одно конкретное значение и в коде их нужно указывать как :
    where variable = :parameter;

    [parameter_list] - такие параметры передают набор значений и в коде их нужно указывать как :
    where variable [parameter_list];

Например, если вам необходимо передать число "5" как параметр вы используете формат :parameter после знака равно. В результате после запуска отчета параметр сработает в коде как:
where value = 5.

Если необходимо передать набор - например (1,3,8), тогда вы используете формат [parameter_list] без знака равно. В результате после запуска отчета параметр сработает в коде как:
where value in (1,3,8).

Названия параметров можно использовать любые удобные, главное использовать правильный формат.

Для настройки параметра необходимо нажать на название параметра в блоке "Параметры". После нажатия откроется окно со следующими настройками параметра:

  • ID - идентификатор параметра - он подтягивается автоматически в соответствии с полем, к которому применяется, он не может изменятся;

  • Название - название параметра - должно быть равно названию параметра в коде;

  • Показывать - название параметра, которое будет отображаться при запуске отчета;

  • Тип - выбор типа параметра - очень важно указать правильный тип, для корректного срабатывания параметра и избежания ошибок. Поддерживаются следующие типы параметров:

    • Текст - параметр будет передавать текстовое значение, может использоваться только с форматом параметра :parameter;

    • Число - параметр будет передавать числовое значение, может использоваться только с форматом параметра :parameter;

    • Дата - параметр будет передавать дату в формате ГГГГ-MM-ДД, может использоваться только с форматом параметра :parameter;

    • Неделя - параметр будет передавать дату в формате ISO неделя - ГГГГНН, может использоваться только с форматом параметра :parameter;

    • Месяц - параметр будет передавать дату в формате ISO месяц - ГГГГММ, может использоваться только с форматом параметра :parameter;

    • Перечень - параметр будет передавать набор значений в любом формате. Используется если необходимо передавать не одно значение, а несколько. Например (1, 3, 8) или (рц, магазин, склад) или (202015, 202025). Может использоваться только с форматом параметра [parameter_list];

    • Список - параметр будет передавать набор значений выбранных специальным запросом, который указывается в поле "Запрос". Может использоваться только с форматом параметра :parameter;

  • Min - минимальное значения параметра. Может использоваться для чисел, дат, недель, месяцев;

  • Max - максимальное значения параметра. Может использоваться для чисел, дат, недель, месяцев;

  • Запрос - заполняется только для формата "Список". Для отображения возможных запросов необходимо ввести в поле текст 'select', доступные запросы автоматически появятся списком. При запуске отчета информация подтянутая с запроса будет отображаться выпадающим списком при выборе значения параметра. Сейчас автоматически поддерживаются следующие запросы (но также можно создавать дополнительные):

    • report_select_stores - используется для выбора магазина из списка для значения параметра;

    • report_select_groups - используется для выбора группы из списка для значения параметра;

    • report_select_managers - используется для выбора менеджера из списка для значения параметра;

    • report_select_contracts - используется для выбора контракта из списка для значения параметра;

    • report_select_suppliers - используется для выбора поставщика из списка для значения параметра;

    • report_select_whs - используется для выбора склада из списка для значения параметра;

    • report_select_fcst - используется для выбора номера прогноза из списка для значения параметра;

  • Индекс - может заводится только для параметров типа Дата, Неделя, Месяц. Индекс позволяет автоматически отнимать или добавлять к параметру значение.
    Так если поставить параметр Дата и индекс -10, то за умолчанием при запуске отчета будет отображаться значение даты на 10 дней меньше заданной даты по умолчанию в поле "Значение". Если поле значение оставить пустым - дата будет отниматься от текущей;

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

Стандартные кейсы применения параметров в sql запросе

Ниже приведены варианты задания параметров в sql запросе для разных типов данных:

where sku_id = :sku_id - применяется для выбора конкретного ску по коду Майсейлз. При запуске отчета в параметр передается один номер ску. Тип параметра должен быть "Число";
where sku_id [sku_id_list] - применяется для выбора нескольких ску по коду Майсейлз. При запуске отчета в параметр передается набор номеров ску через запятую. Тип параметра должен быть "Перечень";
where item_code = :item_code - применяется для выбора конкретного ску по коду УПП. При запуске отчета в параметр передается один текстовый код ску. Тип параметра должен быть "Текст";
where item_code [item_code_list] - применяется для выбора нескольких ску по коду УПП. При запуске отчета в параметр передается набор текстовых кодов ску УПП через запятую. Тип параметра должен быть "Перечень";
where ((sku_id = :sku_id) or (:sku_id = 0)) - сложный параметр - используется для возможности выводить все ску или один конкретный. В этом случае чтобы вывести все ску проставляется значение 0 для параметра при запуске отчета, или же номер конкретного ску для вывода одного ску;

Выше приведенные примеры задания параметров в коде актуальны для всех типов параметров и полей.

Работа с базой данных

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

Вызвать структуру базы можно нажав на  и выбрав "База данных". После выбора откроется окно, в которой будут отображаться все таблицы и все поля в них.

В окне базы данных работает поиск, который позволяет найти нужные таблицы и колонки.

 

(c) MySales Labs Ltd
Единственным и исключительным владельцем программного обеспечения MySales, данной документации и других связанных с MySales сопроводительных материалов, является MySales Labs Ltd