Я хотел бы использовать новый компонент таблицы, добавленный к JasperReports 3.7.2 с плагинами яшмы чаш Грааля. Я нахожу этот новый компонент полезным для генерации таблиц.
Я имею, определяют набор данных Таблицы 1, и некоторые поля (исключая: $F {имя}), проблема, все мои полевые значения являются нулевыми. Я имею, также определяют поля (не присоединенный с таблицей), и я получаю значения.
Вот мой код таблицы:
<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>
с компонентом Таблицы?
(например: цепочка (контроллер:'jasper', действие:'index', модель: [данные:<MODEL_DATA>
], params: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>
Компонент таблицы теперь будет использовать ваш фактический источник данных (ваш MODEL_DATA)!