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

如何通过grails jasper插件使用添加到JasperReports 3.7.2的表组件?,grails,jasper-reports,ireport,grails-plugin,Grails,Jasper Reports,Ireport,Grails Plugin,我想用GrailsJasper插件使用添加到JasperReports3.7.2的新表组件。我发现这个新组件对生成表很有用 我已经定义了表dataset 1和一些字段(例如:$F{name}),问题是,我所有的字段值都是空的。我还定义了字段(未随表附上),并获取值 这是我的表格代码: <subDataset name="Table Dataset 1"> <field name="name" class="java.lang.String"/> <f

我想用GrailsJasper插件使用添加到JasperReports3.7.2的新表组件。我发现这个新组件对生成表很有用

我已经定义了表dataset 1和一些字段(例如:$F{name}),问题是,我所有的字段值都是空的。我还定义了字段(未随表附上),并获取值

这是我的表格代码:

<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>
    ...

...
...
我想,我的问题是由于这一部分(我使用的是JREptyDataSource):


但是如何使用表组件获取我的
(例如:chain(控制器:'jasper',操作:'index',模型:[数据:
],参数:params))

以下是解决方案:

保持:

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


表组件现在将使用您的实际数据源(您的模型数据)

上述答案适用于SQL表达式,但如果您使用的是XML数据源,则还必须包括xPath查询,就像主数据集一样

<subDataset name="Tickets">
    <field name="barcode" class="java.lang.String">
        <fieldDescription><![CDATA[barcode]]></fieldDescription>
    </field>
</subDataset>


如果您希望使用辅助数据集怎么办?我刚刚尝试将其与XML数据源一起使用,按照@fabien barbier所说的,我只得到表中的一行,这是最后一行。我不太确定我是否理解您包含XPath查询的示例,您能更具体一点吗。。。?
<subDataset name="Tickets">
    <field name="barcode" class="java.lang.String">
        <fieldDescription><![CDATA[barcode]]></fieldDescription>
    </field>
</subDataset>