如何使用grails jasper插件添加到JasperReports 3.7.2中的表组件?

Fab*_*ier 6 grails jasper-reports ireport grails-plugin

我想使用grails jasper插件添加到JasperReports 3.7.2中的新表组件.我发现这个新组件对生成表很有用.

我已经定义了Table数据集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>
    ...
Run Code Online (Sandbox Code Playgroud)

我想,我的问题是由于这部分(我正在使用JREmptyDataSource):

<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource(1)]]></dataSourceExpression>
Run Code Online (Sandbox Code Playgroud)

但是如何才能获得<MODEL_DATA>Table组件?
(例如:chain(controller:'jasper',action:'index',model:[data:<MODEL_DATA>],params:params))

Fab*_*ier 5

这是解决方案:

保持 :

<subDataset name="Table Dataset 1">
    <field name="name" class="java.lang.String"/>
    <field name="signal" class="java.lang.Double"/>
    ...
</subDataset>
Run Code Online (Sandbox Code Playgroud)

并使用:

<dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>
Run Code Online (Sandbox Code Playgroud)

表组件现在将使用您的实际dataSource(您的MODEL_DATA)!

  • 如果您想使用辅助数据集怎么办? (2认同)