2012-03-27 5 views
2

私のドメインクラスインスタンスのレポートを作成したいと思いますが、GSPテーブルで選択したユーザーだけ(チェックボックスを選択してください)は作成しません。私の報告書では、いくつかの論理もあります - いくつかの条件、計算など。私はデータベースからいくつかの追加データを得なければなりません。これはどうすればいいですか?私はcotrollerで選択されたチェックボックスの値を取得し、ジャスパーコントローラに渡す必要がありますか?このような何か:Grailsを使用したjasperReport/iReportの開始

GSP:

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

アクション:私はレポート作成のためのiReportはを使用

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) 
} 

。私はSQLクエリとパラメータなしでレポートを作成しようとしました。私のロジックは、上記の例のようにジャスパーコントローラにドメインインスタンスのマップを渡すと、レポートにデータソースを指定する必要はありません。しかし、私は空の報告を得る。

また、私のデータベースにレポートデータソースを設定し、これにレポートクエリを設定しようとしました:select * from book where $ X {IN、id、books}。その場合、私が選択したレポートがすべてのブックインスタンスに対して作成されます。

答えて

0

あなたは試してみました...

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

を...あなたの.jrxmlで空のSQL文字列を残したまま?

関連する問題