grails - 从Grails开始jasperReport/iReport

标签 grails jasper-reports ireport jasper-plugin

我想为我的域类实例而不是全部实例创建报告,只是为GSP表中选定的用户(选择复选框)创建报告。在我的报告中,我还将有一些逻辑-很少的条件,一些计算等。我还必须从数据库中获取一些其他数据。我该怎么做呢?我应该在cotroller中获取选定复选框的值,然后将其传递给jasper cotroller吗?像这样:

GSP:

 <g:each in="${books}" var="bookInstance">
        <td> <g:checkBox name="book_${bookInstance.id}"/> </td>
 </g:each>

行动:
def bookReport = {
    def bookList = []
    params.each {
        if(it.key.startsWith("book_")){
            bookList.add((it.key - "book_") as Long)
        }
    }

    def bookCriteria = Book.createCriteria()
    def books = bookCriteria.list {
        'in'('id',bookList)
    }
    chain(controller:'jasper', data:books, action:'index', params:params)
}

我使用iReport创建报告。我尝试创建没有SQL查询和参数的报告。我的逻辑是,如果像上面的示例中那样将域实例的映射传递给jasper Controller ,则无需在报告中指定数据源。但是我得到一个空的报告。

我还尝试将报告数据源设置为我的数据库,并对此报告进行查询:从书中选择*,其中$ X {IN,id,books}。在这种情况下,无论我选择什么报告,都会为所有图书实例创建报告。

最佳答案

你有没有尝试过...

chain(controller:'jasper', model:[data:books], action:'index', params:params)

...同时在.jrxml中将SQL字符串留空?

关于grails - 从Grails开始jasperReport/iReport,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9891739/

相关文章:

ajax - Grails formRemote:为什么总是重定向?

unit-testing - 基于 Spock 交互的测试 : too few invocation on a method

grails - 如何从命令行覆盖 grails 配置

java - Jasper 创建空 PDF

java - 如何将 iReport 字体更改为参数

jasper-reports - 如何根据多个参数的值隐藏文本字段?

java - grails 嵌套 bean 错误

java - 如何在 3 个示例中打印 jasper 报告且几乎没有任何变化?

gradle - JasperReports的Gradle构建失败:依赖关系问题

java - 如何将 jasperreports 子报表与 grails jasper 插件一起使用?