Как создавать отчеты с помощью инструмента Jasper IReports в веб-приложении - PullRequest
4 голосов
/ 09 марта 2012

Я хотел бы знать, как создавать отчеты с помощью инструмента Jasper IReports в веб-приложении.

Я установил IReports, и он работает нормально.Он может подключиться к базе данных, и я создал несколько примеров отчетов.Моя проблема в том, что я не знаю, как интегрировать эти отчеты с моим веб-приложением.Нужно ли копировать файлы .jasper в папку с классами приложений или в другую часть моего веб-приложения?

Заранее спасибо.

1 Ответ

3 голосов
/ 12 марта 2012

Чтобы интегрировать Jasper Reports (iReport - это просто инструмент для разработки Jasper Reports), вам необходимо включить следующие jar-файлы вместе с Jasper Reports в ваш classpath:

Для экспорта в pdf вам нужно:

Вам могут понадобиться другие jar-файлы в зависимости от того, какие функции вы используете, поэтому ознакомьтесь с Требованиями к Jasper Reports для всех остальных, которые вам могут понадобиться.

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

Наконец, ваш java-код вернет байтовый массив экспортированного отчета в ваш интерфейс. На внешнем интерфейсе необходимо правильно настроить заголовки для типа ответа и вернуть байтовый массив. Это делается по-разному в каждом фреймворке, и поэтому вы должны посмотреть на то, какой из них вы используете.

В качестве примера того, как может выглядеть ваш Java-код для получения байтового массива:

public byte[] exportReport (String reportName, 
                            Connection dbConn, 
                            Map<String, Object> params) throws JRException {
     JasperPrint jprint = JasperFillManager.fillReport(
                      PATH_TO_COMPILED_JASPER_REPORTS+reportName, params, dbConn);
     return JasperExportManager.exportReportToPdf(jPrint);
}
...