Библиотека отчетов Java для включения в веб-страницу - PullRequest
4 голосов
/ 05 декабря 2010

Я работаю над приложением Grails, и мне нужно отобразить некоторые отчеты и позволить пользователям экспортировать их в наиболее распространенные форматы (PDF, XML ...).

Я не хочу встраивать SQL-запрос в определение отчета, логика отчета интегрирована в службы Grails, и нужная библиотека отчетов должна работать с набором данных (возможно, со списком карт) без реального DataSource.

Я использовал Jasper Reports и iReport для своих тестов, и они отлично работают вместе с Grails для функциональности экспорта (PDF, XML, HTML). Но мне сложно включить их в свой шаблон страницы. Я хотел бы иметь свой заголовок, нижний колонтитул, меню навигации и фильтр в отчете HTML.

Единственное решение, которое мне пришло в голову, - это использовать iframe, но мне это не очень нравится.

Может ли Jasper Report адресовать мой запрос? знаете ли вы какую-либо другую библиотеку отчетов Java, которая позволяет мне включать отчет в мое тело HTML?

Ответы [ 2 ]

2 голосов
/ 05 декабря 2010

Вы можете использовать тег g:include , чтобы включить ответ контроллера:

<g:include controller="myJasper" action="showReport" 
    params="[foo: 'bar', baz: 42]" />

Используя плагин Grails Jasper , ваш контроллер будет содержать кодкак это:

import org.codehaus.groovy.grails.plugins.jasper.JasperExportFormat;
import org.codehaus.groovy.grails.plugins.jasper.JasperReportDef;

class MyJasperController {
    def jasperService

    def showReport = {
        def reportDef = new JasperReportDef(
            name: 'your_report.jasper', 
            parameters: params,
            fileFormat: JasperExportFormat.HTML_FORMAT)

        def report = jasperService.generateReport(reportDef)
            .toByteArray().toString("UTF-8")

        render report
    }
}
0 голосов
/ 05 декабря 2010

Существует множество веб-приложений для Java. Просто посмотрите здесь:

http://java -source.net / с открытым исходным кодом / картирование-и-отчетности

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