В конструкторе отчётов есть три блока: Script, category — блок, в котором пишется сам SQL-запрос.
Описан в разделе Работа с запросами ; Tables — блок, в котором добавляются и настраиваются столбцы отчёта.
Описан в разделе Работа со столбцами ; Parameters — блок, в котором настраиваются переменные параметры для запуска отчёта.
Описан в разделе Работа с параметрами ; В этом блоке пользователь пишет SQL-запрос, который будет загружать данные из таблиц базы данных.
Запросы пишутся на SQL. Для написания запросов пользователь должен обладать базовыми навыками программирования на SQL.
SQL на базовом уровне можно освоить в кратчайшие сроки (до 1 дня).
Основные запросы, необходимые для создания базовых отчётов, описаны в разделе «Основные SQL-запросы».
В данном блоке документации описаны возможные действия с уже написанным блоком SQL-кода; работа с базовыми запросами, необходимыми для создания базовых отчётов, описана в разделе «Основные SQL-запросы».
Код SQL-запроса вводится в блоке «Script, Category:»: После написания кода скрипта с ним возможны следующие операции: Запуск для проверки — чтобы запустить отчёт, нажмите кнопку .
После нажатия кнопки скрипт начнёт выполняться; это может занять от нескольких секунд до нескольких минут в зависимости от сложности и объёма загружаемых данных.
Если компилятор кода обнаружит ошибку в коде, она будет отображена внизу в красном блоке: Если ошибок нет, внизу окна появится сообщение о загрузке отчёта, а по завершении загрузки откроется окно с результатами запроса.
Если запрос теоретически может вернуть более 10 000 строк, рекомендуется использовать ограничения TOP 1000 или TOP 10000 после команды SELECT при проверке; Остановка отчёта — если отчёт загружается очень долго или вы решили прервать выполнение, это можно сделать нажатием кнопки .
Эта кнопка становится красной и активной во время выполнения отчёта. Перенос полей, выбранных в SELECT, в столбцы отчёта.
Столбцы всегда добавляются в отчёт вместе с запросом. Для добавления столбцов нажмите кнопку .
После нажатия система самостоятельно определит столбцы и их названия и добавит их в отчёт: Система также отобразит эти столбцы в блоке «Tables», где их можно настроить.
Настройки столбцов описаны в разделе «Работа со столбцами». Система автоматически добавляет все столбцы.
Ненужные удаляются нажатием . Позже их можно добавить из блока «Table».
Перенос параметров отчёта в поле «Parameters» для настройки. Для переноса параметров нажмите .
После нажатия система самостоятельно определит параметры и перенесёт их имена в поле «Parameters».
Параметры, которые не были перенесены, отображаются в редакторе SQL-запросов красным цветом, а перенесённые — зелёным.
Каждый параметр необходимо настроить; как их настраивать и в каких форматах параметры могут быть представлены в коде SQL-запроса, описано в разделе «Работа с параметрами».
Все поля, выбранные через SELECT в SQL-запросе, отображаются в двух местах — над конструктором и в блоке «Tables»: Система также отобразит эти столбцы в блоке «Tables», где их можно настроить.
Настройки столбцов описаны в разделе «Работа со столбцами». Система автоматически добавляет все столбцы.
Ненужные удаляются нажатием . Позже их можно добавить из блока «Table».
Перенос параметров отчёта в поле «Parameters» для настройки. Для переноса параметров нажмите .
После нажатия система самостоятельно определит параметры и перенесёт их имена в поле «Parameters».
Параметры, которые не были перенесены, отображаются в редакторе SQL-запросов красным цветом, а перенесённые — зелёным.
Каждый параметр необходимо настроить; как их настраивать и в каких форматах параметры могут быть представлены в коде SQL-запроса, описано в разделе «Работа с параметрами».
Все поля, выбранные через SELECT в SQL-запросе, отображаются в двух местах — над конструктором и в блоке «Tables»: Изначально все поля автоматически добавляются в отчёт после нажатия кнопки в окне SQL-запроса и отображаются над конструктором и в блоке «Tables».
После удаления любого поля его можно вернуть, нажав + рядом с его именем в блоке «Tables».
Пользователь может изменить порядок отображения полей — просто перетаскивая их названия в верхнем блоке.
Также можно изменить ширину столбцов, растягивая их.
Внешний вид столбцов в верхнем блоке полностью соответствует тому, как они будут отображаться в отчёте.
Чтобы изменить параметры поля, нажмите на его название — после этого откроется окно со следующими параметрами: Style All — редактирование общего стиля отчёта.
Процесс аналогичен редактированию в любом другом текстовом редакторе; Expand by — это поле подробно описано в разделе Expand By и Group By ; Group by — это поле подробно описано в разделе Expand By и Group By ; Name — пользователь задаёт название этого столбца в отчёте; Key — указывает, какие данные подтягивать в столбец.
Например, есть запрос: SELECT SKU_ID SKU, STORE_ID STORE FROM SALES_SKU Если поместить код поля STORE в настройки столбца SKU, то в столбце SKU в отчёте будут отображаться данные из столбца STORE.
Но это возможно только в том случае, если отображается один столбец SKU; если отображаются оба столбца SKU и STORE — добавление кода поля работать не будет.
Нельзя добавить код поля в то же поле. Data type — выбор типа данных, который должен отображаться в поле.
Поддерживаются следующие типы данных: Text — для текстовых полей, например «Наименование товара»; Number — для числовых полей, например «Объём продаж»; Data — для полей с любым форматом даты, например «Неделя продаж» или «Дата продаж»; Format — это поле появляется при выборе типа данных «Number» или «Date».
Link — позволяет добавить ссылку на другую страницу, данные или что-либо ещё.
Например, есть запрос: SELECT SKU_ID SKU, SITE_LINK LINK FROM MONITORING В столбце SKU отображаются коды товаров, а в столбце LINK — ссылки на сайт.
В этом случае, если в поле «Link» настроек столбца SKU выбрать ссылку на LINK, то в отчёте при нажатии на число в столбце SKU откроется ссылка из столбца LINK.
Ссылку можно добавить только на другие столбцы; Width — пользователь может ограничить возможную ширину поля в отчёте.
Значение необходимо вводить в пикселях. Если ширина «auto», поле будет растянуто по тексту.
Style Cell — редактирование отдельного стиля отображения информации в отчёте.
Процесс аналогичен редактированию в любом другом текстовом редакторе; Эти два поля настройки столбца всегда задаются вместе.
Данные параметры позволяют реализовать перекрёстные столбцы — когда в одном столбце отображаются данные из нескольких других столбцов.
Например, это позволяет отображать данные о продажах товара за несколько недель в одной строке, без ручного добавления отдельного столбца для каждой недели.
Эта функциональность будет более подробно объяснена на примере ниже.
Пользователь создал запрос для отображения продаж за первую неделю за последние 5 лет для выбранного товара 56 по всем магазинам (Магазин 1 и Магазин 2): В результате он получил следующий отчёт: Видно, что отчёт отобразил 10 строк, но в не очень удобном формате.
Было бы гораздо удобнее, если бы все недели и продажи отображались в одной строке с товаром — тогда для каждого магазина было бы только две строки.
В таком виде: Для таких преобразований используется Expand By.
Сначала нужно убрать из отображения столбец, данные которого нужно развернуть и вставить в другой столбец.
В данном примере это столбец с неделями — WEEK WK.
Поэтому необходимо нажать рядом со столбцом WEEK в верхней строке столбцов; Следующий шаг — нажать рядом со столбцом, в котором нужно отобразить другой столбец.
В нашем случае это столбцы «Продажи» и «Остаток» — поэтому нажмите кнопку рядом с обоими столбцами — после нажатия укажите, какой столбец должен отображаться внутри — в нашем случае это WK (Неделя); После этого WK также отображается в поле Expand By в настройках соответствующих столбцов.
Для Expand by можно использовать любые столбцы, которые не отображаются в отчёте, но присутствуют в запросе.
Далее нужно настроить, по какому столбцу будут группироваться данные.
В этом примере необходимо, чтобы данные группировались по магазинам — то есть в поле Group by выберите STR (имя столбца, который подтягивает данные по магазинам в SQL-запросе).
Group by можно выбрать только для одного столбца; в остальных столбцах с Expand by этот выбор подтянется автоматически.
После завершения всех настроек нажмите и посмотрите, как отображаются данные: Параметры — это значения, которые пользователь выбирает при запуске отчёта.
Это позволяет выбирать только те данные, которые соответствуют критериям пользователя.
Параметры автоматически переносятся из кода в SQL-редакторе в блок «Parameters» после нажатия кнопки .
После того как параметры появятся в блоке «Parameters», их можно настраивать.
Существует два типа параметров: :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).
Можно использовать любые удобные имена параметров; главное — использовать правильный формат.
Для настройки параметра нажмите на его имя в блоке «Parameters».
После нажатия откроется окно со следующими настройками параметра: ID — идентификатор параметра — подтягивается автоматически в соответствии с полем, к которому он применяется; изменить его нельзя; Name — имя параметра — должно совпадать с именем параметра в коде; Display — имя параметра, которое будет отображаться при запуске отчёта; Type — выбор типа параметра — очень важно указать правильный тип для корректной работы параметра и предотвращения ошибок.
Поддерживаются следующие типы параметров: Text — параметр будет передавать текстовое значение; можно использовать только с форматом параметра :parameter; Number — параметр будет передавать числовое значение; можно использовать только с форматом параметра :parameter; Data — параметр будет передавать дату в формате YYYY-MM-DD; можно использовать только с форматом параметра :parameter; Week — параметр будет передавать дату в формате недели по ISO — YYYYWW; можно использовать только с форматом параметра :parameter; Month — параметр будет передавать дату в формате месяца по ISO — YYYYMM; можно использовать только с форматом параметра :parameter; List — параметр будет передавать набор значений в любом формате.
Используется, когда необходимо передать более одного значения. Например (1, 3, 8) или (магазин, склад) или (202015, 202025).
Можно использовать только с форматом параметра [parameter_list]; Select — параметр будет передавать набор значений, выбранных специальным запросом, который указывается в поле «Query».
Можно использовать только с форматом параметра :parameter; Min — минимальное значение параметра.
Можно использовать для чисел, дат, недель, месяцев; Max — максимальное значение параметра.
Можно использовать для чисел, дат, недель, месяцев; Query — заполняется только для формата «Select».
Для отображения возможных запросов необходимо ввести в поле текст «select» — доступные запросы автоматически появятся в виде списка.
При запуске отчёта информация, подтянутая из запроса, будет отображаться в выпадающем списке при выборе значения параметра.
В настоящее время автоматически поддерживаются следующие запросы (но можно создавать и дополнительные): report_select_stores — используется для выбора магазина из списка в качестве значения параметра; report_select_groups — используется для выбора группы из списка в качестве значения параметра; report_select_managers — используется для выбора менеджера из списка в качестве значения параметра; report_select_contracts — используется для выбора контракта из списка в качестве значения параметра; report_select_suppliers — используется для выбора поставщика из списка в качестве значения параметра; report_select_whs — используется для выбора склада из списка в качестве значения параметра; report_select_fcst — используется для выбора номера прогноза из списка в качестве значения параметра; Index — может быть введён только для параметров типа Date, Week, Month.
Индекс позволяет автоматически вычитать или добавлять значение к параметру.
Если задать параметр Date и Index равным -10, то по умолчанию при запуске отчёта значение даты будет на 10 дней меньше указанной даты по умолчанию в поле «Value».
Если поле значения оставить пустым, дата будет вычтена из текущей; Value — вводится значение по умолчанию, которое будет отображаться при выборе параметров перед запуском отчёта.
Ниже приведены варианты задания параметров в SQL-запросе для различных типов данных: where sku_id = :sku_id - используется для выбора конкретного SKU по коду MySales.
При запуске отчёта в параметр передаётся один номер SKU.
Тип параметра должен быть «Number»; where sku_id [sku_id_list] - используется для выбора нескольких SKU по коду MySales.
При запуске отчёта в параметр передаётся набор номеров SKU, разделённых запятыми.
Тип параметра должен быть «List»; where item_code = :item_code - используется для выбора конкретного SKU по внутреннему коду.
При запуске отчёта в параметр передаётся один текстовый код.
Тип параметра должен быть «Text»; where item_code [item_code_list] - используется для выбора нескольких SKU по внутреннему коду.
При запуске отчёта в параметр передаётся набор текстовых кодов SKU через запятую.
Тип параметра должен быть «List»; where ((sku_id = :sku_id) or (:sku_id = 0)) - сложный параметр — используется для возможности отображения всех SKU или одного конкретного.
В этом случае для отображения всех SKU при запуске отчёта для параметра устанавливается значение 0, или номер конкретного SKU для отображения одного SKU; Приведённые выше примеры задания параметров в коде актуальны для всех типов параметров и полей.
Для работы с конструктором отчётов очень важно понимать структуру базы данных, чтобы знать, какие данные из каких таблиц получать, как называются поля и как связывать данные из разных таблиц.
Структуру базы можно вызвать, нажав и выбрав «Show DB».
После выбора откроется окно, в котором будут отображены все таблицы и все поля в них.
В окне базы данных работает поиск, который позволяет находить таблицы и столбцы.