0

そのため、grails で groovy を使用して単純な CRUD アプリを作成し、jasper レポート プラグインを使用してデータベースに関する単純なレポートを取得したいと考えています。ドロップダウンリストから選択する単純な G:select を設定し、PDF アイコンを押すと、空白のページが表示されます。gspは以下です

<div id="page-body" role="main">
<p>Please select one of the following options</p>
<div>
<g:select optionKey="id" 
optionValue="artist" 
name="artist" 
id="MusicCatalogue" 
value="${artist}" 
from="${multicatalogue.MusicCatalogue.list()}">
</g:select>
</div>
<div> <g:jasperReport jasper="report1" format="PDF" name="Music Catalogue" />
<input type="hidden" name="artist" value="${artist}" />
</div>
</div>

そして、jrxmlは以下のようになります

<parameter name="artist" isForPrompting="true" class="java.lang.String">
    <defaultValueExpression><![CDATA["<parameter error>"]]></defaultValueExpression>
    </parameter>
    <queryString language="SQL">
        <![CDATA[SELECT   *
    FROM
    MusicCatalogue where ARTIST = $P{artist}]]>
    </queryString>
    <field name="ID" class="java.lang.Integer"/>
    <field name="ALBUM" class="java.lang.String"/>
    <field name="ARTIST" class="java.lang.String"/>
    <field name="TRACK" class="java.lang.String"/>
    <group name="ARTIST">

アイデア????

4

1 に答える 1

0

Try replace

<g:jasperReport jasper="report1" format="PDF" name="Music Catalogue" />
<input type="hidden" name="artist" value="${artist}" />

With

<g:jasperReport jasper="report1" format="PDF" name="Music Catalogue">
<input type="hidden" name="artist" value="${artist}" />
</g:jasperReport>

Also, make sure that ${artist} returns a string value, else the report will use the defaultValue of artist parameter that might ruin your query.

于 2013-02-18T01:59:48.297 に答える