Введение
! В связи с проблемами Хабра с отображением md текстов, вы можете ознакомится с полным текстом статьи на GitHub.
В мире огромных объемов данных как никогда важно сделать информацию доступной и легко интерпретируемой. С помощью InterSystems Reports (Logi Reports) вы можете легко и эффективно представлять сложные данные. InterSystems Reports – модуль InterSystems IRIS и InterSystems IRIS for Health. Это современное решение для создания и публикации отчетов, которое включает в себя:
- Встроенную оперативную отчетность, которая может быть настроена как разработчиками отчетов, так и конечными пользователями.
- Точное форматирование, позволяющее создавать специализированные формы, например, макеты для счетов, документов и т.д.
- Макеты, обеспечивающие структуру для отображения как агрегированных, так и транзакционных данных.
- Позиционирование заголовков, колонтитулов, агрегированных и подробных данных, изображений и вложенных отчетов.
- Разнообразные типы отчетов.
- Публикация и распространение отчетов, включая экспорт в PDF, XLS, HTML, XML и другие форматы файлов, печать и архивирование для соблюдения нормативных требований.
InterSystems Reports состоит из:
- Дизайнера отчетов (Designer), в котором разработчики создают отчёты.
- Сервера отчетов (Server), который предоставляет пользователям доступ через браузер для запуска, планирования, фильтрации и изменения отчетов.
В этой статье мы рассмотрим создание отчётов в InterSystems Reports Designer.
Подготовка
- Установите InterSystems IRIS.
- Установите InterSystems Reports Designer.
- (Опционально) Установите InterSystems Reports Server.
- Установите ZPM.
- Установите модуль ZPM HoleFoods:
zpm "install samples-bi"
Упражнение 1: Создание каталога и источника данных для подключения к InterSystems IRIS
В этом упражнении вы откроете InterSystems Reports Designer (Logi Report Designer) и создадите каталог HoleFoods с InterSystems IRIS в качестве источника данных. Этот каталог поможет организовать ваши источники данных, запросы, отчеты и другие ресурсы. Каждый каталог может иметь любое количество таких ресурсов, но только один каталог одновременно может активно редактироваться из Designer.
-
Откройте Logi Report Designer. Когда появится начальный экран, нажмите на X, чтобы закрыть его и перейти к основной рабочей области.
-
В Designer нажмите
File
>New Catalog
и заполните поля следующим образом:- Name:
HoleFoods.cat
- Data Source Name:
IRIS2020
После создания каталога автоматически появляется Catalog Manager.
- Name:
-
Нажмите правой кнопкой мыши на
IRIS2020
, затемNew JDBC Connection
и выберитеInterSystems IRIS
в качествеConnection Type
. Заполните следующие поля:- Server: localhost
- Port: 1972
- Namespace: область установки HoleFoods
- User: пользователь
- Password: пароль
-
Нажмите
Test Connection
, чтобы убедиться, что вы можете успешно подключиться к вашему серверу InterSystems IRIS, и нажмитеOK
.
-
Во всплывающем окне нажмите
Add Tables
и добавьте таблицы, на которые вы будете ссылаться из этого источника данных.- В разделе
Schemas
выберитеHoleFoods
. - Нажмите
Refresh
, чтобы перечислить все таблицы в этой схеме. - Выберите все доступные таблицы и нажмите кнопку
Add
. - Нажмите
Done
. - Нажмите
X
, чтобы выйти из всплывающего окнаNew Queries or Business Views
.
- В разделе
-
Многие поля в наборе данных HoleFoods имеют одинаковые имена, например, ID и Name. Чтобы в дальнейшем не пришлось развязывать эти поля, удалите автоматическую привязку полей:
- Нажмите
Options
>Query Editor
. - Снимите все опции
Auto Join
и нажмитеOK
.
- Нажмите
-
Затем создайте новый запрос с именем
HoleFoodsTransactionsQuery
, который использует источник данныхInterSystems IRIS
, включая все таблицы и поля.- Нажмите
Queries
, затемNew Query
.
- Назовите запрос
HoleFoodsTransactionsQuery
. - Когда появится запрос на выбор таблиц для включения в запрос, разверните JDBC соединение и выберите все таблицы, которые вы добавили в шаге 5.
- Нажмите стрелку вправо (), чтобы добавить таблицы, затем нажмите
OK
.
- Нажмите
-
Укажите столбцы для запроса и столбцы для объединения. Таблицы появятся в интерактивном окне в верхней части редактора запросов. Каждый столбец SQL будет перечислен в таблице в виде строки с установленным рядом флажком.
- Установите флажок звездочки (
*
) в каждой таблице, чтобы выбрать все столбцы для запроса.
-
Перетащите один столбец SQL на другой, чтобы создать соединения между следующими таблицами:
-
SalesTransaction.Product
иProduct.Product_ID
. -
SalesTransaction.Outlet
иOutlet.Outlet_ID
. -
Country.Region
иRegion.Region_ID
. -
Outlet.Country
иCountry.ID
.
-
- Если вы случайно соединили неправильные столбцы, дважды нажмите по ячейке с буквой
J
в линии, соединяющей таблицы, нажмитеDelete Join
во всплывающем окне и нажмитеOK
.
- Установите флажок звездочки (
-
Нажмите
Save Catalog
.
-
Нажмите
X
, чтобы выйти из менеджера каталогов.
Упражнение 2: Использование запросов и сводок в отчете
В этом упражнении вы создадите отчет, отображающий количество проданных единиц для каждого продукта. Затем вы добавите группировки и сводки, чтобы получить агрегированные данные. Наконец, вы добавите логотип к отчету, чтобы придать ему индивидуальность.
Отчет с полосами полезен для отчетов, в которых требуются специальные макеты, группировки, итоги, промежуточные итоги, сводки, диаграммы, графики или встроенные изображения. Полосы повторяются и позволяют упорядочить данные с помощью одинаковых заголовков и другого содержимого.
- В Designer Нажмите
Home
>New
>Page Report
. - В поле
Title
введитеHoleFoods Transactions by Date
. - Выберите
Banded
. - Нажмите
OK
, чтобы войти в мастер создания отчета (Banded Wizard). - Выберите запрос
HoleFoodsTransactionsQuery
, затем нажмите кнопкуNext
. -
Добавьте следующие столбцы для отображения:
Таблица Свойство SalesTransaction DateOfSale Product Product_Name SalesTransaction UnitsSold SalesTransaction AmountOfSale - Нажмите
Finish
, затем выберите в менюFile
>Save
. - Назовите отчет
HoleFoodsPageReport.cls
.
- Нажмите
- В нижней левой части вкладки
Design
нажмите правой кнопкой мыши по имени вкладки отчета, чтобы переименовать её вHoleFoodsTransactionsFullList
. - Нажмите кнопку
View
(Просмотр), чтобы запустить отчет. Обратите внимание на большое количество страниц в отчете:
В настоящее время отчет выдает все строки, соответствующие поисковому запросу, а не агрегированную сводку, в которой было бы сгруппировано общее количество продаж каждого продукта. Далее вы создадите агрегированную сводку. - Создайте отчет, который объединит и обобщит эти результаты:
- Вернитесь на вкладку
Design
, нажмите правой кнопкой мыши вкладку отчетаHoleFoodsTransactionsFullList
в нижней части листа отчета и нажмитеduplicate
.
- Вернитесь на вкладку
- Измените название нового отчета на
Transactions By Product
, щелкнув правой кнопкой мыши на вкладкеReport Title
внизу и выбравRename
. -
Создайте сводку по общему объему продаж:
- На панели
Data
слева прокрутите страницу в самый низ и нажмитеSummaries
>New Summary
. -
Заполните приведенные ниже поля, используя панель ресурсов и выпадающие меню. Обратите внимание, что поля допускают ручной ввод, но неободимо использовать кнопки со стрелками на странице (), чтобы добавлять поля в сводку.
- Aggregate Function: Sum
- Summary On: SalesTransaction.AmountOfSale
- Static Summary: selected
- Group By: Product.Product_Name
- После нажатия кнопки
OK
введитеTotal Sales
в качестве имени.
- На панели
-
Создайте вторую сводку для общего количества единиц товаров:
- На панели
Data
слева прокрутите страницу в самый низ и нажмитеSummaries
>New Summary
. -
Заполните приведенные ниже поля, используя панель ресурсов и выпадающие меню.
- Aggregate Function: Sum
- Summary On: SalesTransaction.UnitsSold
- Static Summary: selected
- Group by: ProductName
- После нажатия кнопки
OK
введитеTotal Units
в качестве имени. - Сохраните лист.
- На панели
- На вкладке
Design
нажмите в любом месте сетки, чтобы отобразить идентификаторы рядов (BH, BPH и т.д.) слева от каждого ряда.
- В отчете нажмите правой кнопкой мыши внутри строк
BF
илиBPF
на вкладкеDesign
и выберитеBanded Wizard
.BF
иBPF
означают соответственноBanded Footer
иBanded Page Footer
. - Нажмите
Back
, чтобы вернуться на страницуDisplay
и удалитеDateOfSale
, щелкнув по нему и используя стрелку влево (), затем нажмитеNext
. - Используя панель ресурсов и экранные кнопки со стрелками, выберите
Product.Product_Name
в качестве объекта группировки (Banded Object). - Нажмите
Next
и выберите стильClassic
, затем нажмитеFinish
. - В сетке отчета найдите в строке
GH
поле с крестиками, которое представляет только что созданный объектProduct_Name
. Перетащите это поле так, чтобы оно выровнялось со столбцомProduct_Name
.
- Переместите столбцы так, чтобы они были выровнены по левому краю.
- Находясь за пределами таблицы, Нажмите мышью на представление и перетащите его, чтобы создать рамку, охватывающую все три колонки и строки данных под ними.
- Найдите поле, очерченное сплошной синей линией, и наведите курсор мыши на это поле, чтобы активировать курсор перемещения. В таком положении мышь позволит вам перемещать весь набор полей, выделенных в предыдущем шаге.
- Перетащите все поля влево, чтобы выровнять их по левой стороне отчета.
- Перетащите сводку
Total Sale
в заголовок группы (GH) под столбцомAmountOfSale
.- Это приведет к автоматическому заполнению метки вместе с полем. Удалите эту метку, Total Sales, нажав по ней правой кнопкой мыши и выбрав
Delete
. - Перетащите только что созданное поле данных, представляющее общий объем продаж, чтобы выровнять его со столбцом
AmountOfSale
.
- Это приведет к автоматическому заполнению метки вместе с полем. Удалите эту метку, Total Sales, нажав по ней правой кнопкой мыши и выбрав
- Повторите этот шаг для сводки
Total Units
:- Перетащите сводку
Total Units
из панели данных слева и поместите ее в заголовок группы (GH) подUnitsSold
. - Удалите автоматически заполняемую метку
Units Sold
. - Перетащите вновь созданное поле данных, чтобы выровнять его со столбцом
UnitsSold
.
- Перетащите сводку
- Перейдите на вкладку
View
, чтобы просмотреть отчет.
- Чтобы агрегировать отчет по продуктам, вернитесь на вкладку
Design
.- Скройте панель деталей, щелкнув правой кнопкой мыши
DT
и выбравHide
, а затем нажмитеSave
.
- Скройте панель деталей, щелкнув правой кнопкой мыши
- Нажмите кнопку
View
еще раз, чтобы просмотреть агрегированный отчет.
Упражнение 3: Постройте гистограмму для визуализации данных
В этом упражнении вы будете использовать столбчатую диаграмму для отображения проданных товаров по регионам. Каждый регион будет иметь свой столбец, что позволит вам увидеть, в каком регионе было продано больше всего товаров.
Гистограмма позволяет легко просматривать данные по нескольким группам. Наша гистограмма также будет включать динамический фильтр, чтобы конечные пользователи могли изменять просматриваемые данные (в данном случае тип продукта).
-
Создайте сводку
Units Sold by Region
:-
На панели
Data
прокрутите вниз и нажмитеSummaries
>New Summary
.
-
Заполните следующие поля:
- Aggregate Function: Sum
- Summary On: SalesTransaction.UnitsSold
- Static Summary: selected
- Group by: Region.Region_Name
-
Нажмите
OK
и введите в качестве названияUnits Sold by Region
.
-
Нажмите кнопку
Save
.
-
- Создайте новую вкладку диаграммы внутри отчета, нажав
Home
>New
>Page Report Tab
.- Назовите вкладку
Units Sold By Region Chart
. - Выберите
Chart
. - Нажмите
OK
.
- Назовите вкладку
- В мастере создания диаграмм создайте новую стековую гистограмму:
- Выберите
HoleFoodsTransactionsQuery
в качестве запроса и нажмитеNext
. - В качестве типа диаграммы выберите
Bar
. - Из вариантов в разделе
Chart Type
:Bar
, выберитеStacked Bar 2-D
. Обратите внимание, что названия диаграмм появляются при наведении курсора на изображения. - Нажмите
Next
. - В окне
Resources
с помощью стрелки вправо добавьтеRegion_Name
в полеx-Axis
. - Аналогичным образом добавьте
Product.Product_Name
в полеStacking
. - Добавьте сводку
Units_Sold_by_Region
в полеBar Length
. - Нажмите
Finish
.
- Выберите
- Добавьте элемент управления фильтром к гистограмме, выбрав значок
Filter Control
на панели компонентов и перетащив его в правую часть диаграммы.
- Заполните следующие поля и нажмите
OK
:- Control Type: Text List
- Select Fields: Product_Name from the Product table
- Нажмите правой кнопкой мыши на вкладке
Name
в нижней части и переименуйте диаграмму вUnits Sold By Region Chart
. - Перейдите на вкладку
View
, чтобы увидеть гистограмму. КолонкаFilter Control
справа является интерактивной, но не изменяет график. Этот инструмент работает только на сервере.
Упражнение 4: Создание отчета с помощью мастера создания перекрестных отчетов (пивотов)
В этом упражнении вы будете использовать отчет crosstab
(пивот) для отображения проданных продуктов по странам и регионам. Каждая единица товара будет иметь свой столбец, что позволит вам увидеть, в какой стране и регионе было продано больше всего единиц каждого товара.
Отчет с перекрестными таблицами показывает взаимосвязи между тремя или более элементами запроса. Данные отображаются в строках и столбцах с обобщением информации во всех ячейках. Это компактный способ анализа большого количества данных — в данном случае данных о том, насколько хорошо продаются товары по странам и регионам.
-
Начните с создания новой вкладки: вернитесь на вкладку
Design
и нажмитеHome
>New
>Page Report Tab
.
-
Назовите вкладку
Crosstab Report
(Перекрестный отчет).
-
Выберите
Crosstab
и нажмите OK.
-
В мастере перекрестных таблиц выберите
HoleFoodsTransactionsQuery
в качестве запроса и нажмите кнопкуNext
.
-
Выберите следующие поля данных для отображения в сводном отчете, перетащив их из поля
Resources
в целевое поле:- Columns: Product.Product_Name
- Summaries: SalesTransactions.UnitsSold
- Rows: Region.Region_Name, Country.Name
-
Нажмите
Next
, пока не перейдете на шагStyle
.
-
Выберите
Classic
и нажмитеFinish
.
-
Нажмите правой кнопкой мыши вкладку внизу и переименуйте ее в
Crosstab Report
.
-
Перейдите на вкладку
View
, чтобы просмотреть отчет.
-
Вернитесь на вкладку
Design
и нажмитеSave
, чтобы сохранить отчет.
Упражнение 5: Публикация и просмотр отчетов в InterSystems Report Server
В этом упражнении вы перенесете отчет, которые вы сделали в предыдущих шагах, на InterSystems Report Server и посмотрите, как они будут там отображаться. Затем вы запланируете еженедельную генерацию отчета.
- Нажмите
File
>Publish
>Publish Report to Server
. - Авторизуйтесь:
admin
/admin
, затем нажмитеConnect
. - На следующем экране обратите внимание, что выбраны и каталог, и отчет,
HoleFoods.cat
иHoleFoodsPageReport.cls
, соответственно. Местом расположения ресурса выбрана ваша личная папка. Сохраните значения по умолчанию и нажмитеOK
. - На следующем экране вы можете выбрать стили, доступные для этого отчета на сервере. Нажмите двойную стрелку
>>
, чтобы сделать все стили доступными, затем нажмите OK. - Нажмите
Yes
. - Откройте браузер и откройте InterSystems Reports Server, затем войдите в систему (
admin
/admin
). - В разделе
Open
нажмитеMy Folder
, чтобы открыть папку, содержащую все файлы, созданные в InterSystems Reports Designer. - Нажмите кнопку
Run
(с треугольником) рядом сHoleFoodsPageReport.cls
, чтобы запустить отчет, созданный в Designer.
- Используйте выпадающее меню справа для переключения между вкладками отчета и просмотра созданной вами диаграммы
Units Sold By Region Chart
.
- С помощью элемента управления
Filter
выберите продукт для отображения на гистограмме.
- Закройте отчет, чтобы вернуться в каталог
My Reports
. - Далее вы запланируете еженедельные отчеты. Нажмите
HoleFoodsPageReport.cls
, затем значок часов. - На вкладке
General
:- Назовите расписание
Weekly HoleFoods Report Export
. - Выберите
Export to One File
и нажмитеNext
.
- Назовите расписание
- На вкладке
Publish
:- Перейдите на вкладку
To Disk
и выберитеPublish to Disk
>PDF
. - В поле ввода под выпадающим списком
Publish To Server Resource Tree
введите/HoleFoodsWeeklyReport
.
- Перейдите на вкладку
- На вкладке
Conditions
:- В раскрывающемся меню выберите
Run this task periodically
. - Откройте выпадающее меню
Date
и выберитеWeekly
. - Выберите
Monday
в качестве дня недели для запуска отчета.
- В раскрывающемся меню выберите
- На вкладке
Notification
нажмитеNew
и введите свой email, затем нажмитеFinish
. - Выберите
My Tasks
, чтобы увидеть запланированный отчет.
Заключение
Создание и публикация отчетов с помощью InterSystems Reports Designer позволяет сделать данные легко интерпретируемыми. Используя интуитивно понятные интерфейсы, вы можете быстро создавать перекрестные таблицы и визуализировать данные, чтобы выделить закономерности и проводить бизнес-анализ. В выбранных упражнениях Вы сначала выступили в роли дизайнера отчетов, чтобы разработать отчеты, которые другие пользователи смогут настраивать и изучать. Затем Вы стали конечным пользователем, вошли в Server и распространили информацию, содержащуюся в отчетах, по всей организации.
Ссылки
- Получение отчетов с помощью InterSystems — это руководство содержит ссылки на учебные видеоролики, упражнения и документацию по InterSystems Reports.
- InterSystems Server — запуск InterSystems Reports в Docker
- Примеры отчётов — готовые упражнения из этой статьи
- Документация
Комментарии (3)
Buchachalo
07.09.2021 10:34+5А почему автоматом при публикации статьи не чекается длинна до ката? Можно сразу предупреждать автора.
eduard93 Автор
07.09.2021 17:56Проблема с markdown редактором Хабра.Когда писал сттью, добавил <cut/> в текст черновика, но тогда текст после ката не отображается.Затем добавил перед и после ката 3 грависа (```) чтобы кат в markdown отображался как код - в черновике это работало.К сожалению при публикации такой кат просто игнорируется.Так что непонятно как писать статьи с катом в markdown.Пока что я вернул кат и поставил ссылку на исходник статьи, надеюсь Хабр поправит markdown редактор.Кат должен быть отдельной строкой, тогда работает.
SystemXFiles
Уберите, пожалуйста, статью под кат, ибо видеть весь текст длинной статьи на главной странице такое себе удовольствие.