Введение


! В связи с проблемами Хабра с отображением 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.


Подготовка


  1. Установите InterSystems IRIS.
  2. Установите InterSystems Reports Designer.
  3. (Опционально) Установите InterSystems Reports Server.
  4. Установите ZPM.
  5. Установите модуль ZPM HoleFoods: zpm "install samples-bi"

Упражнение 1: Создание каталога и источника данных для подключения к InterSystems IRIS


В этом упражнении вы откроете InterSystems Reports Designer (Logi Report Designer) и создадите каталог HoleFoods с InterSystems IRIS в качестве источника данных. Этот каталог поможет организовать ваши источники данных, запросы, отчеты и другие ресурсы. Каждый каталог может иметь любое количество таких ресурсов, но только один каталог одновременно может активно редактироваться из Designer.


  1. Откройте Logi Report Designer. Когда появится начальный экран, нажмите на X, чтобы закрыть его и перейти к основной рабочей области.


  2. В Designer нажмите File > New Catalog и заполните поля следующим образом:


    • Name: HoleFoods.cat
    • Data Source Name: IRIS2020
      После создания каталога автоматически появляется Catalog Manager.
      image

  3. Нажмите правой кнопкой мыши на IRIS2020, затем New JDBC Connection и выберите InterSystems IRIS в качестве Connection Type. Заполните следующие поля:


    • Server: localhost
    • Port: 1972
    • Namespace: область установки HoleFoods
    • User: пользователь
    • Password: пароль

  4. Нажмите Test Connection, чтобы убедиться, что вы можете успешно подключиться к вашему серверу InterSystems IRIS, и нажмите OK.


  5. Во всплывающем окне нажмите Add Tables и добавьте таблицы, на которые вы будете ссылаться из этого источника данных.


    • В разделе Schemas выберите HoleFoods.
    • Нажмите Refresh, чтобы перечислить все таблицы в этой схеме.
    • Выберите все доступные таблицы и нажмите кнопку Add.
    • Нажмите Done.
    • Нажмите X, чтобы выйти из всплывающего окна New Queries or Business Views.

  6. Многие поля в наборе данных HoleFoods имеют одинаковые имена, например, ID и Name. Чтобы в дальнейшем не пришлось развязывать эти поля, удалите автоматическую привязку полей:


    • Нажмите Options > Query Editor.
    • Снимите все опции Auto Join и нажмите OK.

    image


  7. Затем создайте новый запрос с именем HoleFoodsTransactionsQuery, который использует источник данных InterSystems IRIS, включая все таблицы и поля.


    • Нажмите Queries, затем New Query.
      image
    • Назовите запрос HoleFoodsTransactionsQuery.
    • Когда появится запрос на выбор таблиц для включения в запрос, разверните JDBC соединение и выберите все таблицы, которые вы добавили в шаге 5.
    • Нажмите стрелку вправо (image), чтобы добавить таблицы, затем нажмите OK.

  8. Укажите столбцы для запроса и столбцы для объединения. Таблицы появятся в интерактивном окне в верхней части редактора запросов. Каждый столбец SQL будет перечислен в таблице в виде строки с установленным рядом флажком.


    • Установите флажок звездочки (*) в каждой таблице, чтобы выбрать все столбцы для запроса.
      image
    • Перетащите один столбец SQL на другой, чтобы создать соединения между следующими таблицами:


      • SalesTransaction.Product и Product.Product_ID.
      • SalesTransaction.Outlet и Outlet.Outlet_ID.
      • Country.Region и Region.Region_ID.
      • Outlet.Country и Country.ID.
        image

    • Если вы случайно соединили неправильные столбцы, дважды нажмите по ячейке с буквой J в линии, соединяющей таблицы, нажмите Delete Join во всплывающем окне и нажмите OK.
      image

  9. Нажмите Save Catalog.


  10. Нажмите X, чтобы выйти из менеджера каталогов.



Упражнение 2: Использование запросов и сводок в отчете


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


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


  1. В Designer Нажмите Home > New > Page Report.
  2. В поле Title введите HoleFoods Transactions by Date.
  3. Выберите Banded.
  4. Нажмите OK, чтобы войти в мастер создания отчета (Banded Wizard).
  5. Выберите запрос HoleFoodsTransactionsQuery, затем нажмите кнопку Next.
  6. Добавьте следующие столбцы для отображения:


    Таблица Свойство
    SalesTransaction DateOfSale
    Product Product_Name
    SalesTransaction UnitsSold
    SalesTransaction AmountOfSale

    • Нажмите Finish, затем выберите в меню File > Save.
    • Назовите отчет HoleFoodsPageReport.cls.
      image

  7. В нижней левой части вкладки Design нажмите правой кнопкой мыши по имени вкладки отчета, чтобы переименовать её в HoleFoodsTransactionsFullList.
  8. Нажмите кнопку View (Просмотр), чтобы запустить отчет. Обратите внимание на большое количество страниц в отчете:
    image
    В настоящее время отчет выдает все строки, соответствующие поисковому запросу, а не агрегированную сводку, в которой было бы сгруппировано общее количество продаж каждого продукта. Далее вы создадите агрегированную сводку.
  9. Создайте отчет, который объединит и обобщит эти результаты:
    • Вернитесь на вкладку Design, нажмите правой кнопкой мыши вкладку отчета HoleFoodsTransactionsFullList в нижней части листа отчета и нажмите duplicate.
  10. Измените название нового отчета на Transactions By Product, щелкнув правой кнопкой мыши на вкладке Report Title внизу и выбрав Rename.
  11. Создайте сводку по общему объему продаж:


    • На панели Data слева прокрутите страницу в самый низ и нажмите Summaries > New Summary.
    • Заполните приведенные ниже поля, используя панель ресурсов и выпадающие меню. Обратите внимание, что поля допускают ручной ввод, но неободимо использовать кнопки со стрелками на странице (image), чтобы добавлять поля в сводку.


      • Aggregate Function: Sum
      • Summary On: SalesTransaction.AmountOfSale
      • Static Summary: selected
      • Group By: Product.Product_Name
        image

    • После нажатия кнопки OK введите Total Sales в качестве имени.

  12. Создайте вторую сводку для общего количества единиц товаров:


    • На панели Data слева прокрутите страницу в самый низ и нажмите Summaries > New Summary.
    • Заполните приведенные ниже поля, используя панель ресурсов и выпадающие меню.


      • Aggregate Function: Sum
      • Summary On: SalesTransaction.UnitsSold
      • Static Summary: selected
      • Group by: ProductName
        image

    • После нажатия кнопки OK введите Total Units в качестве имени.
    • Сохраните лист.

  13. На вкладке Design нажмите в любом месте сетки, чтобы отобразить идентификаторы рядов (BH, BPH и т.д.) слева от каждого ряда.
    image
  14. В отчете нажмите правой кнопкой мыши внутри строк BF или BPF на вкладке Design и выберите Banded Wizard. BF и BPF означают соответственно Banded Footer и Banded Page Footer.
  15. Нажмите Back, чтобы вернуться на страницу Display и удалите DateOfSale, щелкнув по нему и используя стрелку влево (image), затем нажмите Next.
  16. Используя панель ресурсов и экранные кнопки со стрелками, выберите Product.Product_Name в качестве объекта группировки (Banded Object).
  17. Нажмите Next и выберите стиль Classic, затем нажмите Finish.
  18. В сетке отчета найдите в строке GH поле с крестиками, которое представляет только что созданный объект Product_Name. Перетащите это поле так, чтобы оно выровнялось со столбцом Product_Name.
    image
  19. Переместите столбцы так, чтобы они были выровнены по левому краю.
    • Находясь за пределами таблицы, Нажмите мышью на представление и перетащите его, чтобы создать рамку, охватывающую все три колонки и строки данных под ними.
    • image
    • Найдите поле, очерченное сплошной синей линией, и наведите курсор мыши на это поле, чтобы активировать курсор перемещения. В таком положении мышь позволит вам перемещать весь набор полей, выделенных в предыдущем шаге.
    • Перетащите все поля влево, чтобы выровнять их по левой стороне отчета.
      image
  20. Перетащите сводку Total Sale в заголовок группы (GH) под столбцом AmountOfSale.
    • Это приведет к автоматическому заполнению метки вместе с полем. Удалите эту метку, Total Sales, нажав по ней правой кнопкой мыши и выбрав Delete.
    • image
    • Перетащите только что созданное поле данных, представляющее общий объем продаж, чтобы выровнять его со столбцом AmountOfSale.
  21. Повторите этот шаг для сводки Total Units:
    • Перетащите сводку Total Units из панели данных слева и поместите ее в заголовок группы (GH) под UnitsSold.
    • Удалите автоматически заполняемую метку Units Sold.
    • Перетащите вновь созданное поле данных, чтобы выровнять его со столбцом UnitsSold.
      image
  22. Перейдите на вкладку View, чтобы просмотреть отчет.
    image
  23. Чтобы агрегировать отчет по продуктам, вернитесь на вкладку Design.
    • Скройте панель деталей, щелкнув правой кнопкой мыши DT и выбрав Hide, а затем нажмите Save.
      image
  24. Нажмите кнопку View еще раз, чтобы просмотреть агрегированный отчет.
    image

Упражнение 3: Постройте гистограмму для визуализации данных


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


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


  1. Создайте сводку 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.



  2. Создайте новую вкладку диаграммы внутри отчета, нажав Home > New > Page Report Tab.
    • Назовите вкладку Units Sold By Region Chart.
    • Выберите Chart.
    • Нажмите OK.
  3. В мастере создания диаграмм создайте новую стековую гистограмму:
    • Выберите 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.
      image
  4. Добавьте элемент управления фильтром к гистограмме, выбрав значок Filter Control на панели компонентов и перетащив его в правую часть диаграммы.
    image
  5. Заполните следующие поля и нажмите OK:
    • Control Type: Text List
    • Select Fields: Product_Name from the Product table
    • image
  6. Нажмите правой кнопкой мыши на вкладке Name в нижней части и переименуйте диаграмму в Units Sold By Region Chart.
  7. Перейдите на вкладку View, чтобы увидеть гистограмму. Колонка Filter Control справа является интерактивной, но не изменяет график. Этот инструмент работает только на сервере.
    image

Упражнение 4: Создание отчета с помощью мастера создания перекрестных отчетов (пивотов)


В этом упражнении вы будете использовать отчет crosstab (пивот) для отображения проданных продуктов по странам и регионам. Каждая единица товара будет иметь свой столбец, что позволит вам увидеть, в какой стране и регионе было продано больше всего единиц каждого товара.
Отчет с перекрестными таблицами показывает взаимосвязи между тремя или более элементами запроса. Данные отображаются в строках и столбцах с обобщением информации во всех ячейках. Это компактный способ анализа большого количества данных — в данном случае данных о том, насколько хорошо продаются товары по странам и регионам.


  1. Начните с создания новой вкладки: вернитесь на вкладку Design и нажмите Home > New > Page Report Tab.


  2. Назовите вкладку Crosstab Report (Перекрестный отчет).


  3. Выберите Crosstab и нажмите OK.


  4. В мастере перекрестных таблиц выберите HoleFoodsTransactionsQuery в качестве запроса и нажмите кнопку Next.


  5. Выберите следующие поля данных для отображения в сводном отчете, перетащив их из поля Resources в целевое поле:


    • Columns: Product.Product_Name
    • Summaries: SalesTransactions.UnitsSold
    • Rows: Region.Region_Name, Country.Name
    • image

  6. Нажмите Next, пока не перейдете на шаг Style.


  7. Выберите Classic и нажмите Finish.
    image


  8. Нажмите правой кнопкой мыши вкладку внизу и переименуйте ее в Crosstab Report.


  9. Перейдите на вкладку View, чтобы просмотреть отчет.
    image


  10. Вернитесь на вкладку Design и нажмите Save, чтобы сохранить отчет.



Упражнение 5: Публикация и просмотр отчетов в InterSystems Report Server


В этом упражнении вы перенесете отчет, которые вы сделали в предыдущих шагах, на InterSystems Report Server и посмотрите, как они будут там отображаться. Затем вы запланируете еженедельную генерацию отчета.


  1. Нажмите File > Publish > Publish Report to Server.
  2. Авторизуйтесь: admin / admin, затем нажмите Connect.
  3. На следующем экране обратите внимание, что выбраны и каталог, и отчет, HoleFoods.cat и HoleFoodsPageReport.cls, соответственно. Местом расположения ресурса выбрана ваша личная папка. Сохраните значения по умолчанию и нажмите OK.
  4. На следующем экране вы можете выбрать стили, доступные для этого отчета на сервере. Нажмите двойную стрелку >>, чтобы сделать все стили доступными, затем нажмите OK.
  5. Нажмите Yes.
  6. Откройте браузер и откройте InterSystems Reports Server, затем войдите в систему (admin/admin).
  7. В разделе Open нажмите My Folder, чтобы открыть папку, содержащую все файлы, созданные в InterSystems Reports Designer.
  8. Нажмите кнопку Run (с треугольником) рядом с HoleFoodsPageReport.cls, чтобы запустить отчет, созданный в Designer.
    image
  9. Используйте выпадающее меню справа для переключения между вкладками отчета и просмотра созданной вами диаграммы Units Sold By Region Chart.
    image
  10. С помощью элемента управления Filter выберите продукт для отображения на гистограмме.
    image
  11. Закройте отчет, чтобы вернуться в каталог My Reports.
  12. Далее вы запланируете еженедельные отчеты. Нажмите HoleFoodsPageReport.cls, затем значок часов.
  13. На вкладке General:
    • Назовите расписание Weekly HoleFoods Report Export.
    • Выберите Export to One File и нажмите Next.
  14. На вкладке Publish:
    • Перейдите на вкладку To Disk и выберите Publish to Disk > PDF.
    • В поле ввода под выпадающим списком Publish To Server Resource Tree введите /HoleFoodsWeeklyReport.
    • image
  15. На вкладке Conditions:
    • В раскрывающемся меню выберите Run this task periodically.
    • Откройте выпадающее меню Date и выберите Weekly.
    • Выберите Monday в качестве дня недели для запуска отчета.
    • image
  16. На вкладке Notification нажмите New и введите свой email, затем нажмите Finish.
  17. Выберите My Tasks, чтобы увидеть запланированный отчет.

Заключение


Создание и публикация отчетов с помощью InterSystems Reports Designer позволяет сделать данные легко интерпретируемыми. Используя интуитивно понятные интерфейсы, вы можете быстро создавать перекрестные таблицы и визуализировать данные, чтобы выделить закономерности и проводить бизнес-анализ. В выбранных упражнениях Вы сначала выступили в роли дизайнера отчетов, чтобы разработать отчеты, которые другие пользователи смогут настраивать и изучать. Затем Вы стали конечным пользователем, вошли в Server и распространили информацию, содержащуюся в отчетах, по всей организации.


Ссылки


Комментарии (3)


  1. SystemXFiles
    07.09.2021 09:56
    +17

    Уберите, пожалуйста, статью под кат, ибо видеть весь текст длинной статьи на главной странице такое себе удовольствие.


  1. Buchachalo
    07.09.2021 10:34
    +5

    А почему автоматом при публикации статьи не чекается длинна до ката? Можно сразу предупреждать автора.


    1. eduard93 Автор
      07.09.2021 17:56

      Проблема с markdown редактором Хабра.

      Когда писал сттью, добавил <cut/> в текст черновика, но тогда текст после ката не отображается.

      Затем добавил перед и после ката 3 грависа (```) чтобы кат в markdown отображался как код - в черновике это работало.

      К сожалению при публикации такой кат просто игнорируется.

      Так что непонятно как писать статьи с катом в markdown.

      Пока что я вернул кат и поставил ссылку на исходник статьи, надеюсь Хабр поправит markdown редактор.

      Кат должен быть отдельной строкой, тогда работает.