Все наборы данных делятся на: 

  • Кубовые наборы данных: 
    • SQL-кубы, формируемые через SQL-запрос, которые создаются вручную (с нуля или на основе шаблона) в специальной группе кубов SQL-кубы. 
    • Прочие кубовые наборы данных, формируемые через выборку полей в редакторе, которые создаются только путем копирования существующих предустановленных кубов.
      Кубовые отчеты позволяют выводить информацию в отчете в виде кубов.
  • Прямые отчеты — печатное представление отчета по созданному набору данных. Получают данные напрямую из SQL-запросов (включая внешние базы данных). Не используют кубы, поэтому в фильтре отчета отсутствует кнопка «Куб». 

Отчёты строятся на базе OLAP и SQL кубов. OLAP-кубы формируются путём редактирования полей куба (добавление/удаление полей) согласно заложенным в ядре r_keeper связям между справочниками.

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

Помимо этого кубы по назначению могут быть для кассовых отчётов (для применения в макетах кассовых отчётов) либо для отчётов в менеджерской.

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

Обратите внимание!

Предустановленные кубовые отчеты также распределяются по назначению, нам доступны Данные для отчетов и Данные для кассовых отчетов (такие кубовые отчеты не имеют вкладки Отчеты, поэтому возможность создания новых отчетов, а также редактирование предустановленных отчетов отсутствует). 

Давайте разберем подробнее SQL кубы и прочие Кубовые отчеты.

Создание SQL куба

Для создания SQL куба в r_keeper: 

  1. Перейдите в меню Настройки > OLAP отчеты > Кубы и отчеты

  2. В Конфигурировании OLAP отчетов откройте группу кубов SQL кубы, во вкладке Кубы появятся преднастроенные кубы

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

  4. Задайте Название

  5. В поле SQL-запросы введите необходимый SQL-запрос

    SELECT
      CurrLines."BINDEDSUM" AS "BINDEDSUM",
      PaymentsExtra00."OWNER" AS "OWNER",
      PaymentsExtra00."CARDNUM" AS "CARDNUM",
      CASHGROUPS00."NETNAME" AS "NETNAME",
      RESTAURANTS00."NAME" AS "RESTAURANTNAME",
      PrintChecks00."CHECKNUM" AS "CHECKNUM",
      1 AS "CHECKCOUNT",
      trk7EnumsValues0B00.UserMName AS "CURRENCYFORMAT",
      GLOBALSHIFTS00."SHIFTNUM" AS "SHIFTNUM",
      GLOBALSHIFTS00."SHIFTDATE" AS "SHIFTDATE",
      PDSCards00."FOLDER3" AS "FOLDER3",
      CURRENCIES00."NAME" AS "NAME",
      PDSCards00."FOLDER2" AS "FOLDER2",
      PDSCards00."FOLDER1" AS "FOLDER1",
      PDSCards00."TEL1" AS "TEL1",
      PrintChecks00."STARTDATETIME" AS "STARTDATETIME___15",
      CONVERT(VARCHAR(5), PrintChecks00."STARTDATETIME", 108) AS "STARTDATETIME_12",
      PrintChecks00."DELETED" AS "DELETED"
    FROM CURRLINES
    LEFT JOIN "PAYMENTSEXTRA" PaymentsExtra00
      ON (PaymentsExtra00."VISIT" = CurrLines."VISIT") AND (PaymentsExtra00."MIDSERVER" = CurrLines."MIDSERVER") AND (PaymentsExtra00."PAYUNI" = CurrLines."PAYUNIFOROWNERINFO")
    LEFT JOIN "CASHGROUPS" CASHGROUPS00
      ON (CASHGROUPS00."SIFR" = CurrLines."MIDSERVER")
    LEFT JOIN "RESTAURANTS" RESTAURANTS00
      ON (RESTAURANTS00."SIFR" = CASHGROUPS00."RESTAURANT")
    LEFT JOIN "PRINTCHECKS" PrintChecks00
      ON (PrintChecks00."VISIT" = CurrLines."VISIT") AND (PrintChecks00."MIDSERVER" = CurrLines."MIDSERVER") AND (PrintChecks00."UNI" = CurrLines."CHECKUNI")
    LEFT JOIN "CURRENCYTYPES" CURRENCYTYPES00
      ON (CURRENCYTYPES00."SIFR" = CurrLines."IHIGHLEVELTYPE")
    LEFT JOIN trk7EnumsValues trk7EnumsValues0B00
      ON (trk7EnumsValues0B00.EnumData = CURRENCYTYPES00."CURRENCYFORMAT") AND (trk7EnumsValues0B00.EnumName = 'TPayLineType')
    LEFT JOIN "ORDERS" Orders00
      ON (Orders00."VISIT" = PrintChecks00."VISIT") AND (Orders00."MIDSERVER" = PrintChecks00."MIDSERVER") AND (Orders00."IDENTINVISIT" = PrintChecks00."ORDERIDENT")
    LEFT JOIN "GLOBALSHIFTS" GLOBALSHIFTS00
      ON (GLOBALSHIFTS00."MIDSERVER" = Orders00."MIDSERVER") AND (GLOBALSHIFTS00."SHIFTNUM" = Orders00."ICOMMONSHIFT")
    LEFT JOIN "PDSCARDS" PDSCards00
      ON (PDSCards00."ACCOUNTIDENT" = PaymentsExtra00."ACCOUNTIDENT") AND (PDSCards00."MINTERFACE" = PaymentsExtra00."ADDBYINTERFACE")
    LEFT JOIN "CURRENCIES" CURRENCIES00
      ON (CURRENCIES00."SIFR" = CurrLines."SIFR")
        WHERE
      ((PrintChecks00."STATE" = 6))
      AND (PrintChecks00."IGNOREINREP" = 0)

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

    В противном случае при нажатии на кнопку OK появится ошибка 

  7. Переведите статус SQL-куба в Активный

  8. Сохраните изменения

  9. Теперь можно приступать к созданию отчета внутри созданного SQL-куба, для этого откройте созданный куб в левой части экрана, на вкладке Отчеты вызовите контекстное меню и выберите Новый отчет.
    Укажите Название для отчета и перейдите в Макет

  10. В Макете с помощью кнопки Создать шаблон можно произвести настройки фильтрации отчета, шрифт для отображения и др.

  11. После настройки шаблона нажмите на кнопку ОК и откроется окно редактора Fast Report. Отредактируйте макет отчета по своему усмотрению и закройте его.

  12. Сохраните отчет. Для этого:

    • Сохраните отчет в макете отчета, нажав на кнопку с зеленой галкой 

    • Сохраните настройки отчета в менеджерской станции . Перед этим не забудьте перевести отчет в Статус — Активный.

  13. При необходимости можно посмотреть куб как отчет, для это кликните правой кнопкой мыши на куб в списке кубов далее нажмите Действие — Посмотреть как отчет.

  14. Также можно посмотреть и созданный отчет внутри куба. Для этого кликните на куб и перейдите на вкладку Отчеты, нажмите на созданный отчет правой кнопкой мыши выберите Действие — Выполнить отчет

Если вам необходимо отредактировать макет отчета:

  1. Нажмите правой кнопкой мыши на нужный отчет и выберите Действия > Редактировать свойство Макета

  2. Нажмите кнопку Открыть шаблон, если необходимо отредактировать макет. Однако для редактирования фильтра отчета нажмите кнопку Создать шаблон

  3. Внесите изменения 

  4. Сохраните изменения. 

Создание кубового отчета

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

Для создания куба, который будет формировать отчеты:

  1. В менеджерской станции r_keeper перейдите в меню Настройки > OLAP отчеты > Кубы и отчеты

  2. Создайте новый куб на основе предустановленного, кликнув по предустановленному кубу правой кнопкой мыши и нажав Новый куб (копия)

    1. Задайте для куба Название

    2. Переведите статус в Активный

    3. Сохраните изменения.

  3. Пройдите на вкладку Отчеты и, кликнув правой кнопкой мыши, выберите действие Новый отчет.

  4. Задайте отчету Название, установите статус Активный и сохраните изменения.

  5. В свойствах отчета введите необходимые параметры в Макет

  6. В открывшейся форме макета отчета можно отредактировать таблицу отчета путем перетаскивания элементов или используя пункты контекстного меню, а также полям размеренности можно добавить итоги: для добавления итогов кликните правой кнопкой мыши по заголовку размерности и нажмите на Суммы вкл./выкл. Заданные итоги будут автоматически отрисовываться в созданном печатном представлении кубового отчета


  7. Далее нажмите на панели инструментов на кнопку Создать шаблон

  8. В появившемся окне Параметры выставите необходимые значения:

    1. Report Source:
      Cube data
      — используется для обычного кубового отчета

      SQL Query — используется для прямого отчета (т.е. отчет в виде куба посмотреть будет невозможно)

    2. Внесите и другие изменения при необходимости, например, можно настроить Фильтр отчета: для этого нажмите на кнопку. Проставьте чекбокс напротив перечисленных значения (данные значения даны из полей куба). 

      Выбранные значения отобразятся при выполнении созданного отчета.

       

      Обратите внимание! Если при создании отчета вы не задали фильтры, задать их можно будет в любой момент через кнопку Создать шалон, открыв поле Макет

    3. Остальные значения можно оставить по умолчанию. 

  9. Нажмите на кнопку ОК

  10. Откроется окно редактора Designer. Здесь внесите изменения по своему усмотрению , либо просто закройте окно.

  11. Сохраните отчет. Для этого:

    • Сохраните отчет в макете отчета, нажав на кнопку с зеленой галкой 

    • Сохраните настройки отчета в менеджерской станции . Перед этим не забудьте перевести отчет в Статус — Активный.

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

Для построения  отчета кликните на отчет правой кнопкой мыши, в контекстном меню выберите Действия — Выполнить отчет.

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

Важно! Кубы доступны только для кубовых отчетов. Для прямых отчётов кубы не строятся, поэтому кнопка Куб отображаться в Фильтре отчета не будет .

Обратите внимание!

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

Для этого:

  1. В полях куба выполните сопоставление с полем справочника

  2. Для поля куба RESTAURANTNAME укажите справочник Restaurants и поле для вывода значений Name. Подробнее о справочниках читайте в описании SQL-базы

Теперь разберем создание Прямого отчета.

Создание прямого отчета

Прямые отчеты — отчеты, которые берут данные из внешних баз данных. Данные запроса позволяют объединить отчеты из нескольких баз MSSQL, относящихся к разным системам, например, r_keeper и GameKeeper. Для этого в запросах необходимо использовать синтаксис для выбора конкретной базы данных.

Прямые отчеты создаются по аналогии с кубовыми, но у прямых отчетов в фильтре не появится кнопка Куб

Для создания Прямого отчета в r_keeper: 

  1. Перейдите в меню Настройки > OLAP отчеты > Кубы и отчеты

  2. В Конфигурировании OLAP отчетов откройте необходимую группу кубов, далее в левой части выберите подходящий Куб или создайте новый Куб

  3. При создании нового куба в поле SQL-запросы введите свой запрос (можно с указанием внешней базы данных)

    Обращаем ваше внимание: в скриншоте Редактор SQL скрипта присутствуют теги. xml-формата записи sql-запроса. Они используется, если требуется указать запрос для PostgreSQL и MSSQL. Если указать sql-запрос без xml-форматирования, то r_keeper считает, что это запрос только для MSSQL.
    <?xml version="1.0" encoding="utf-8"?>
    <query>
      <define name="RESTAURANTID" type="Restaurants:Sifr" />
      <define name="RESTAURANTNAME" type="Restaurants:Name" />
      <SQL><![CDATA[
      <!-- здесь разместить MSSQL-запрос -->
      ]]>
      </SQL>
      <SQL dialect="4"><![CDATA[
      <!-- здесь разместить PostgeSQL-запрос -->
      ]]>
      </SQL>
    </query>
    CODE
    Где:
    <SQL dialect="4"> — соответствует SQL-запросу PostgeSQL
    <SQL> — соответствует SQL-запросу MSSQL
    Ниже дан пример стандартного запроса без использования тегов.

    SELECT
      CurrLines."BINDEDSUM" AS "BINDEDSUM",
      PaymentsExtra00."OWNER" AS "OWNER",
      PaymentsExtra00."CARDNUM" AS "CARDNUM",
      CASHGROUPS00."NETNAME" AS "NETNAME",
      RESTAURANTS00."NAME" AS "RESTAURANTNAME",
      PrintChecks00."CHECKNUM" AS "CHECKNUM",
      1 AS "CHECKCOUNT",
      trk7EnumsValues0B00.UserMName AS "CURRENCYFORMAT",
      GLOBALSHIFTS00."SHIFTNUM" AS "SHIFTNUM",
      GLOBALSHIFTS00."SHIFTDATE" AS "SHIFTDATE",
      PDSCards00."FOLDER3" AS "FOLDER3",
      CURRENCIES00."NAME" AS "NAME",
      PDSCards00."FOLDER2" AS "FOLDER2",
      PDSCards00."FOLDER1" AS "FOLDER1",
      PDSCards00."TEL1" AS "TEL1",
      PrintChecks00."STARTDATETIME" AS "STARTDATETIME___15",
      CONVERT(VARCHAR(5), PrintChecks00."STARTDATETIME", 108) AS "STARTDATETIME_12",
      PrintChecks00."DELETED" AS "DELETED"
    FROM CURRLINES
    LEFT JOIN "PAYMENTSEXTRA" PaymentsExtra00
      ON (PaymentsExtra00."VISIT" = CurrLines."VISIT") AND (PaymentsExtra00."MIDSERVER" = CurrLines."MIDSERVER") AND (PaymentsExtra00."PAYUNI" = CurrLines."PAYUNIFOROWNERINFO")
    LEFT JOIN "CASHGROUPS" CASHGROUPS00
      ON (CASHGROUPS00."SIFR" = CurrLines."MIDSERVER")
    LEFT JOIN "RESTAURANTS" RESTAURANTS00
      ON (RESTAURANTS00."SIFR" = CASHGROUPS00."RESTAURANT")
    LEFT JOIN "PRINTCHECKS" PrintChecks00
      ON (PrintChecks00."VISIT" = CurrLines."VISIT") AND (PrintChecks00."MIDSERVER" = CurrLines."MIDSERVER") AND (PrintChecks00."UNI" = CurrLines."CHECKUNI")
    LEFT JOIN "CURRENCYTYPES" CURRENCYTYPES00
      ON (CURRENCYTYPES00."SIFR" = CurrLines."IHIGHLEVELTYPE")
    LEFT JOIN trk7EnumsValues trk7EnumsValues0B00
      ON (trk7EnumsValues0B00.EnumData = CURRENCYTYPES00."CURRENCYFORMAT") AND (trk7EnumsValues0B00.EnumName = 'TPayLineType')
    LEFT JOIN "ORDERS" Orders00
      ON (Orders00."VISIT" = PrintChecks00."VISIT") AND (Orders00."MIDSERVER" = PrintChecks00."MIDSERVER") AND (Orders00."IDENTINVISIT" = PrintChecks00."ORDERIDENT")
    LEFT JOIN "GLOBALSHIFTS" GLOBALSHIFTS00
      ON (GLOBALSHIFTS00."MIDSERVER" = Orders00."MIDSERVER") AND (GLOBALSHIFTS00."SHIFTNUM" = Orders00."ICOMMONSHIFT")
    LEFT JOIN "PDSCARDS" PDSCards00
      ON (PDSCards00."ACCOUNTIDENT" = PaymentsExtra00."ACCOUNTIDENT") AND (PDSCards00."MINTERFACE" = PaymentsExtra00."ADDBYINTERFACE")
    LEFT JOIN "CURRENCIES" CURRENCIES00
      ON (CURRENCIES00."SIFR" = CurrLines."SIFR")
        WHERE
      ((PrintChecks00."STATE" = 6))
      AND (PrintChecks00."IGNOREINREP" = 0)

  4. Пройдите на вкладку Отчеты, вызовите контекстное меню, выберите Новый отчет.

  5. Задайте Название отчету

  6. Перейдите в Макет и нажмите кнопку Создать шаблон 
  7. В открывшемся окне ПараметрыКлючевой шаг: В Параметры для Report Source выберите SQL Query.
  8. Также выберите Фильтры отчета
  9. Далее нажмите Ок и . Откроется окно редактора Designer. Здесь вы можете внести изменения по своему усмотрению , либо просто закройте окно.
  10. Выставьте статус Активный для созданного отчета.

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

Важно: у прямых отчетов при выполнении отчета не появится кнопка Куб в фильтре. Отчет будет создан только в виде документа.