6

JasperReports3.7.2に追加された新しいテーブルコンポーネントをgrailsjasperプラグインで使用したいと思います。この新しいコンポーネントは、テーブルの生成に役立ちます。

テーブルデータセット1を定義しましたが、一部のフィールド(例:$ F {name})、問題、すべてのフィールド値がnullです。フィールド(テーブルに添付されていない)も定義し、値を取得します。

これが私のテーブルコードです:

<subDataset name="Table Dataset 1">
    <field name="name" class="java.lang.String"/>
    <field name="signal" class="java.lang.Double"/>
    ...
</subDataset>

<componentElement>
<reportElement key="table" style="table" x="0" y="0" width="802" height="50"/>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="Table Dataset 1">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource(1)]]></dataSourceExpression>
</datasetRun>
<jr:column width="90">
<jr:columnHeader style="table_CH" height="30" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="90" height="30"/>
<textElement/>
<text><![CDATA[Name]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="table_TD" height="20" rowSpan="1">
<textField>
<reportElement x="0" y="0" width="90" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
    ...

私の問題はこの部分が原因だと思います(私はJREmptyDataSourceを使用しています):

<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource(1)]]></dataSourceExpression>

しかし、どうすれば<MODEL_DATA>Tableコンポーネントを使用できますか?
(例:chain(controller:'jasper'、action:'index'、model:[data:<MODEL_DATA>]、params:params))

4

2 に答える 2

5

これが解決策です:

保つ :

<subDataset name="Table Dataset 1">
    <field name="name" class="java.lang.String"/>
    <field name="signal" class="java.lang.Double"/>
    ...
</subDataset>

と使用:

<dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>

これで、テーブルコンポーネントは実際のdataSource(MODEL_DATA)を使用します!

于 2010-04-30T15:19:52.757 に答える
1

上記の回答はSQL式では問題なく機能しますが、XMLデータソースを使用している場合は、メインデータセットと同様にxPathクエリも含める必要があります。

<subDataset name="Tickets">
    <field name="barcode" class="java.lang.String">
        <fieldDescription><![CDATA[barcode]]></fieldDescription>
    </field>
</subDataset>
于 2011-11-09T09:56:34.653 に答える