私のドメインクラスインスタンスのレポートを作成したいと思いますが、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}。その場合、私が選択したレポートがすべてのブックインスタンスに対して作成されます。