【问题标题】:Beginning jasperReport/iReport with Grails使用 Grails 开始 jasperReport/iReport
【发布时间】:2012-03-27 14:38:26
【问题描述】:

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

普惠制:

 <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 where $X{IN,id,books}。在这种情况下,无论我选择什么,都会为所有书籍实例创建报告。

【问题讨论】:

    标签: grails jasper-reports ireport jasper-plugin


    【解决方案1】:

    你试过了吗……

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

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

    【讨论】:

      猜你喜欢
      • 2014-07-17
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多