2010-04-27 25 views
6

Me gustaría utilizar un nuevo componente de tabla agregado a JasperReports 3.7.2 con plugins jasper de grial. Encuentro que este nuevo componente es útil para generar tablas.¿Cómo usar el componente de tabla agregado a JasperReports 3.7.2 con plugins jasper de grial?

que tienen definir conjunto de datos Tabla 1, y algunos campos (por ejemplo: $ F {nombre}), de problemas, todos mis valores de los campos son nulos. También he definido campos (no adjuntos a la tabla) y obtengo valores.

Aquí está mi código de la tabla:

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

supongo, mi problema se debe a esta parte (estoy usando JREmptyDataSource):

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

Pero, ¿cómo puedo obtener mi <MODEL_DATA> con Componente de tabla?
(por ejemplo: la cadena (controlador: 'Jasper', la acción: 'índice', modelo: [datos: <MODEL_DATA>], params: params))

Respuesta

5

Aquí está la solución:

Keep:

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

y uso:

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

componente Tabla ahora utilizar su dataSource real (su MODEL_DATA)!

+2

¿Qué sucede si desea utilizar el conjunto de datos secundario? – monksy

1

Por encima de respuesta funciona bien para las expresiones SQL, pero si usted está utilizando una fuente de datos XML, la consulta XPath también se debe incluir, al igual que con el conjunto de datos principal.

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

Solo traté de usarlo con una fuente de datos XML, y siguiendo lo que dijo @ fabien-barbier, obtengo solo una fila en la tabla, y es la última. No estoy seguro de entender su ejemplo para incluir la consulta XPath, ¿podría ser más específico ...? – Less

Cuestiones relacionadas