четверг, 25 декабря 2014 г.

Создаём простейший отчёт в iReport Designer

Для создания нового отчёта выполняем следующие шаги:

1. Запускаем стандартный wizard (File-New) на вкладке Report выбираем Blank A4
2. Задаём имя отчёта и директорию для его сохранения
3. Выбираем источник данных(DataSource) и пишем либо запрос либо вызов процедуры
4. Выбираем поля из результирующего множества и стрелкой влево отмечаем нужные нам
5. Используем не используем группировку данных по выбранным столбцам

После завершения wizard'а мы попадаем на форму визуального представления отчёта.
Форма отчёта в iRD состоит из следующих элементов:

Title - Заголовок отчёта.
Общая информация для всего отчёта. Данный элемент удобно использовать для названия отчёта, наименования компании и т.д.

Page Header - Заголовок страницы.
Если отчёт бьётся на страницы данный элемент будет общим для них всех.
В своих отчётах не используем.

Coloumn Header - Заголовок колонки (верхний колонтитул)
Отчёт, содержащий запрос или вызывающий процедуру содержит элементы Field (Поля).
Для данных элементов Field элемент Coloumn Header содержит заголовок колонки.

Detail - Элемент, содержащий данные.
В данный элемент помещаются элементы Field, которые заполняются при выполнении Report query.
Также на данный элемент помещаются другие элементы, содержащие даные, такие как Table, Crosstab, Subreport и т.д

Coloumn Footer - нижний колонтитул для колонки.
В своих отчётах не используем.

Page Footer - нижний колонтитул для страницы.
Можно размещать номера страниц.

Last Page Footer - колонтитул для последней страницы.
Можно размещать дату построения отчёта.

Summary, No data, Backgroung в своих отчётах не используем.

Поля, выбранные на 4 шаге создания мы можем при помощи drag and drop перетащить в область Detail и





пятница, 20 декабря 2013 г.

Мониторинг JasperServer

Выяснилось, что на тяжёлых отчётах (~40млн строк) JasperServer периодически падает с различными ошибками. То свободного места ему не хватает, то памяти.

Решено было прикрутить систему маниторинга, позволяющую определять нагрузку в моменты запуска таких отчётов и выявить слабое место.

Выбор пал на Java Melody.
Прикрутить оказалось делом не сложным.
1. Скачиваем 2 JAR файла (jrobin-1.5.14.jar и javamelody-1.48.0.jar) последние версии легко гуглятся.
2. Кладём указанные файлы в каталог WEB_INF/lib JasperServer'а
3. Добавляем в WEB_INF/web.xml следующие строки:

<!-- Begin JavaMelody -->
    <filter>
        <filter-name>monitoring</filter-name>
        <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>monitoring</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <listener>
        <listener-class>net.bull.javamelody.SessionListener</listener-class>
    </listener>
<!-- End JavaMelody -->

4. Перегружаем сервер и переходим на добавленную страницу monitoring:
http://[адрес сервера]:[порт сервера]/jasperserver/monitoring

По итогам было выяснено, что узким местом являлся размер java heap space.

вторник, 17 декабря 2013 г.

Исключение "Висячих" строк

Периодически в данных попадаются конструкции, которые при выгрузке отчёта в Excel приводят к тому, что отображается пустая строка с одним единственным значением.

Например это выглядит так

Строка 1 121099     РФ, г. Москва Не известно Новоарбатский мост   Подмост.
Строка 2           прост.

Заказчику невдомёк, что в данных такого нет, а это "шалости" excel. Для исправления подобных ситуаций Jasper содержит специальную настройку.


Для её активации необходимо выбрать блок "Detail" и в его свойствах поменять значение Split Type = "Prevent" (значение по умолчанию = "Default")

После этого строка из нашего примера приобретает красивый для заказчика вид:

Строка 1 121099     РФ, г. Москва Не известно Новоарбатский мост   Подмост.прост.

понедельник, 14 октября 2013 г.

Эксплуатационная документация по JasperServer

Для полноценного использования JasperServer требуется эксплуатационная документация. К сожалению JasperSoft не потрудился перевести имеющуюся документация на великий и могучий, - поэтому восполняю этот досадный пробел.



Список будет расширяться и обновляться.

Переведены следующие документы:
JasperServer Installation Guige (ENG) - Руководство по установке JasperServer (RUS)

Использование элемента Crosstab в JasperReports

JasperServer помимо простого отображения значений из запроса имеет несколько представлений, при помощи которых можно значительным образом изменить вид данных на выходе.

вторник, 1 октября 2013 г.

Настройка Report Scheduler для отправки уведомлений посредством почтового сервера

При использовании планировщика для автоматического однократного или многократного запуска формирования отчёта по расписанию сервер JasperReports имеет инструмент Report Scheduler (Планировщик запуска отчётов). Планировщик имеет гибкие настройки и позволяет отправлять уведомления о выполнении задания на адрес электронной почты. Но для использования отправки уведомлений требуется предварительная настройка в конфигурационных файлах.

Настройка Report Scheduler для отправки уведомлений посредством почтового сервера

Параметры JVM для серверов приложений

Сервер JasperReports поддерживает на Java версий 1.6 и 1.7. Параметры выполнения Java Virtual Machine (JVM) должны быть установлены правильно, для исключения конфликтов с классами веб сервисов, а также корректной работы "тяжёлых" отчётов.