3. Jaspersoft Studio

Основные визуальные элементы

Основные визуальные элементы Jaspersoft Studio

Repository

Содержит перечень подключений к разным базам данных. Подключения к базе данных необходимо настраивать для того чтобы была возможность тестировать отчеты из jasper studio.

Outline

Отображает структуру открытого отчета.

Properties

Отображает свойства элемента выбранного в outline. Набор закладок, отображемых в данной области, зависит от выбранного эелеметна.

Editor

Отображает открытый отчет. Содержит следующие закладки:

  • Design - используется для редактирования шаблона с использованием визуальных компонентов Jaspersoft Studio.
  • Source - на закладке содержиться xml-разметка шаблона, которую при необходимости можно отредактировать.
  • Preview - используется для предпросмотра отчёта, сформированнного на основе шаблона.

Project Explorer

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

Проект

Все шаблоны печатных форм в Jaspersoft Studio создаются внутри проекта, который содержит все необходимые для этого библиотеки. При установке в Jaspersoft Studio создается проект по умолчанию «MyReports». Однако при необходимости можно создать новый проект.

  • Совет

  • Печатные формы проще создавать и редактировать в одном проекте, если они не содержат скриплетов.

Для создания проекта отчёта:

  1. Выполните File > New > Project …
  2. Выберите Jaspersoft Studio / JasperReports Project
  3. Задайте имя отчёта в следующем диалоге.

По завершению на закладке Project Explorer появится новый проект, пока ещё не содержащий шаблонов отчёта.

Параметры

Для изучения подробнее смотри: Параметризация шаблонов

Параметры отчета находятся в окне Outline по адресу {Report} \ parameters Параметры отчёта используются для следующих целей:

  • В SQL-запросах
    Для ограничения данных по переданным из вне параметрам
  • Связи между частями шаблонов
  • Для связи между движком отчёта и внешним окружением.

Параметры могут быть любого java-типа.

Например:

  • REPORT_CONNECTION тип java.sql.Connection
  • REPORT_PARAMETERS_MAP тип Map<String,Object>

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

  • Внимание

  • Создавайте параметры с именами в верхнем регистре. Это связано с тем, что имена параметров, переданных извне, приводятся к верхнему регистру автоматом.

Использовать параметры можно в полях отчёта в запросе данных даже в других параметрах для того чтобы использовать параметр наименование этого параметра нужно обернуть в тэг $P{PARAMETER_NAME}

Адаптеры данных

Для создания адаптера

1. В окне «Repository Explorer» выполните операцию «Create Data Adapter»


2. В открывшемся диалоге выберите «Data base JDBC connectivity»

3. Укажите реквизиты подключения к базе Postgres
    • name={имя подключения}
    • JDBC driver=org.postgresql.Driver
    • JDBC url=jdbc:postgresql://{host}/{db}
    • Username ={username}
  • Примечание

  • Подключение к БД необходимо для того, чтобы тестировать отчет из студии.

Запрос данных

Структура страницы шаблона

Созданный шаблон разделен на следующие области:

    • Title – заголовок шаблона;
    • Page Header – верхний колонтитул шаблона;
    • Column Header – область для названия столбцов отчета;
    • Detail N – область детализации отчета. В отчет могут быть добавлены несколько областей такого типа (Detail 1, Detail 2 и т.п.) в случае, если есть необходимость разделить детализацию отчета. Например, эта возможность используется, когда необходимо добавить два вложенных отчета;
    • Column Footer – нижний колонтитул табличной части шаблона;
    • Page Footer – нижний колонтитул шаблона;
    • Summary – содержит итоги по отчету. Данные этой области выводятся в конце отчета, построенного по текущему шаблону;
    • Background – часть шаблона, на которой размещается фон для печатной формы. Так же в отчет можно добавить дополнительные области:
    • Last Page Footer – нижний колонтитул, данные которого выводятся в отчете на последней странице отчета, построенного по текущему шаблону;
    • No Data – область, которая выводится при построении печатной формы, если отчет не содержит данных (т.е. является пустым).

Скриптлеты

Для изучения подробнее смотри: Скриптлеты

Скриптлет – это Java-класс, позволяющий кастомизировать обработку событий построения отчета а так же добавить вспомогательные функции

Дополнительная информация:

Скриптлет наследуется от одного из классов:

    • net.sf.jasperreports.engine. JRAbstractScriptlet
    • net.sf.jasperreports.engine.JRDefaultScriptlet

Экземпляр данного класса создаётся при заполнении отчёта, и его методы вызываются на различных этапах в качестве обработчиков. Так же скриптлет может содержать пользовательские методы, которые можно вызвать через выражения «Expression» полей, переменных и т.п.

Публикация отчётов в БД

Для обеспечения доступа сервера Global 3 к шаблону отчёта, zip-архив с шаблоном необходимо загрузить в базу данных через приложение «Настройка системы», пункт меню Отчёты > Печатные формы > Версии печатной формы > Загрузить в базу.

Шаблон JasperReports-отчёта может состоять из нескольких файлов (мастер-деталь, несколько страниц) и содержать различные ресурсы (картинки, скриптлеты). Поэтому, для сохранения в базу, шаблон необходимо заархивировать в zip-архив. Файл main.jrxml должен находиться в корне архива, иначе он не будет найден. Остальные файлы могут быть во вложенных каталогах, главное, что бы в шаблоне были указаны верные относительные ссылки.

Архив не должен содержать бинарных *.jasper файлов.

При построении, zip-архив будет разархивирован во временный каталог.

Ручная загрузка отчетов

1. В Project Explorer выберите папку содержащую отчеты печатной формы.

2. В контекстном меню выполните Export.

3. Выберите тип Archive file.

4. Выберите файлы для экспорта.

  • Внимание

  • Допустимы только следующие расширения:

    • jrxml
    • class
    • jar

5. Укажите опцию save in zip archive.

6. Укажите файл куда сохранить шаблон.

7. Откройте приложение Настройки системы.

8. Откройте печатные формы.
Пункт меню Отчеты > Печатные формы.

9. Создайте версию печатной формы.

10. Загрузите шаблон печатной формы.

  • Внимание

  • Убедитесь, что файлы экспортируются в корень архива. Для этого при экспорте должна быть установлена опция Create only selected directories

Загрузка отчета на dataInstall

Загрузку отчета в базу можно добавить в dataInstall получив blob отчета с помощью метода Rpt_ReportVersionApi().compress.

Пример:

val blobData = Rpt_ReportVersionApi().compress(
    List((   
        "subreport1.jrxml",
        getClass.getResourceAsStream("/reports/Mes_PlanReport/subreport1.jrxml")
    ),( 
        "subreport2.jrxml",
        getClass.getResourceAsStream("/reports/Mes_PlanReport/subreport2.jrxml")
    ),( 
        "order.jrxml",
        getClass.getResourceAsStream("/reports/Mes_PlanReport/order.jrxml")
    ),(
        "main.jrxml",
        getClass.getResourceAsStream("/reports/Mes_PlanReport/main.jrxml"))  
    )
)

Полностью пример можно посмотреть в ru.bitec.app.bs.Bs_DataInstallPkg#reportInstall.