用Grails开始jasperReport / iReport

时间:2012-03-27 14:38:26

标签: 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控制器,就像我在上面的示例中所做的那样,我不需要在报告中指定数据源。但我得到一份空洞的报告。

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

1 个答案:

答案 0 :(得分:0)

你试过......

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

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