Прямые отчеты
Введение
Прямые отчеты – отчеты, которые берут данные из внешних баз данных. Данные запроса позволяют объединить отчеты из нескольких баз MSSQL, относящихся к разным системам, например, r_keeper и GameKeeper. Для этого в запросах необходимо использовать синтаксис для выбора конкретной базы данных.
Предварительные настройки
Для создания отчета у пользователя, работающего в менеджерской станции, должна быть настроена связь с внешней базой данных. Для этого:
- В менеджерской станции r_keeper перейдите в меню Персонал > Работники
- Выберите роль, работники которой будут работать с отчетами
- Перейдите в Свойства роли и раскройте раздел Связь с внешней БД
- В поле Настройки связи с внешней БД из выпадающего списка выберите базу данных, с которой работаете
- Найдите поле SQL конфигурация и дважды нажмите на него для редактирования

- В появившемся окне введите логин и пароль от внешней базы данных
- Нажмите на кнопку Проверить
- Если связь установлена, активируется кнопка Ок. Нажмите ее
- Если связь не установлена, появится сообщение об ошибке. Проверьте правильность логина и пароля, а также корректная ли база данных указана в поле Настройка связи с внешней БД.
- Сохраните изменения.
Настройка роли завершена.
Создание отчета
Создание нового отчета
Для создания куба, который будет формировать отчеты:
- В менеджерской станции r_keeper перейдите в меню Настройки > OLAP отчеты > Кубы и отчеты
- Выберите куб, под который попадает ваш отчет, и нажмите на него правой кнопкой мыши
Если подходящего куба нет, создайте его. Для этого:- Нажмите правой кнопкой мыши на категорию, в которую вы хотите поместить куб, и нажмите Новый куб
- Задайте название кубу
- В разделе Основное выберите поле Тип источника — БД SQL
- В поле 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) - Переведите статус в Активный
- Сохраните изменения.
- Выберите Новый отчет
- Задайте отчету название и сохраните его
- Нажмите правой кнопкой мыши на созданный отчет и выберите Действия > Редактировать свойство Макет
- В открывшейся форме нажмите на панели инструментов на кнопку Создать шаблон

- В появившемся окне Параметры выставите значения:
- Report Source — SQL Query
- Нажмите на три точки напротив поля Фильтр отчета и установите фильтры
- Остальные значения можно оставить по умолчанию. При необходимости, можете ввести изменения

- Нажмите на кнопку ОК
- Откроется окно редактора Fast Report. Отредактируйте макет отчета по своему усмотрению
- Сохраните отчет. Для этого:
- Сохраните в форме FastReport, нажав на дискету
, затем закройте редактор - Сохраните отчет в макете отчета, нажав на кнопку с зеленой галкой

- Сохраните настройки отчета в менеджерской станции
. Перед этим не забудьте перевести отчет в Статус — Активный.
- Сохраните в форме FastReport, нажав на дискету
Теперь вы можете построить свой собственный отчет.
Важно! Кубы доступны только для кубовых отчетов. Для прямых отчётов кубы не строятся.

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

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

Редактирование отчета
Если вам необходимо что-то отредактировать в макете:
- В менеджерской станции r_keeper перейдите в меню Настройки > OLAP отчеты > Кубы и отчеты
- Нажмите правой кнопкой мыши на нужный отчет и выберите Действия > Редактировать свойство Макет
- В открывшейся форме нажмите на панели инструментов на кнопку Открыть шаблон

- Внесите изменения в шаблон
- Сохраните отчет. Для этого:
- Сохраните в форме FastReport, нажав на дискету
, затем закройте редактор - Сохраните отчет в макете отчета, нажав на кнопку с зеленой галкой

- Сохраните настройки отчета в менеджерской станции
.
- Сохраните в форме FastReport, нажав на дискету
Конвертация отчетов с макетом под FastReport2 в отчеты с макетов под FastReport невозможна. В этом случае макет необходимо полностью перерисовывать.
Построение отчета
Для построения отчета на основе созданного куба:
- В менеджерской станции r_keeper перейдите в меню Настройки > OLAP отчеты > Кубы и отчеты
- Выберите отчет, который хотите построить, и нажмите на него правой кнопкой мыши для вызова контекстного меню
- Выберите пункт Действия > Пересчитать
Чтобы убедиться в пересчете куба перейдите в его свойства и раскройте раздел Обработка данных. Если все прошло успешно, то в поле Время последнего пересчета будет стоять актуальная дата - Нажмите на название куба правой кнопкой мыши и выберите Действия > Выполнить отчет
- В открывшемся окне выберите ресторан и дату, за которую нужно построить отчет
- Нажмите на кнопку Куб, чтобы сформировать кубический отчет
- Нажмите на кнопку Ок, чтобы сформировать отчет для печати
Дополнительная информация
В прикрепленном файле ReportCollection13.xml содержатся отчеты с кодами от 99901 до 99913.
По группам отчетов:
- 1 — 99907
- 2 — 99906, 99908, 99909
- 3 — 99902, 99903, 99904, 99905, 99910, 99913
- 4 — 99901, 99911, 99912.
Минимальная версия импорта — 7.4.21.100.


