Я изучаю Java с помощью Jasper Reports и пытаюсь создать отчет с XYLineChart
Мой отчет в порядке, все данные отображаются так, как я хочу. Моя диаграмма отображает все данные, но оси X и Y не имеют имени (label
), поэтому я не могу «знать», что это за данные.
Я хочу поместить имена моей оси в таблицу. Я немного почитал и нашел это в книге:
Линейный график также имеет две оси. Их метками можно управлять с помощью категории AxisLabelExpression и valueAxisLabelExpression ...
В книге приведен следующий синтаксис:
<!ELEMENT linePlot (plot, categoryAxisLabelExpression?,
categoryAxisFormat?, valueAxisLabelExpression?, valueAxisFormat?)>
<!ATTLIST linePlot
isShowLines (true | false) "true"
isShowShapes (true | false) "true">
Полный код jrxml
находится в моем GitHub : Отчет
Ниже приведены строки, извлеченные из кода выше, о chart
:
</band>
<band height="164">
<xyLineChart>
<chart evaluationTime="Report">
<reportElement stretchType="ContainerHeight" x="20" y="20" width="280" height="144" uuid="e33fd328-3bfa-41f7-aa53-face45efaf74">
<propertyExpression name="net.sf.jasperreports.chart.range.axis.tick.interval"><![CDATA[value]]></propertyExpression>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<chartTitle/>
<chartSubtitle/>
<chartLegend/>
</chart>
<xyDataset>
<dataset resetType="Report">
<datasetRun subDataset="CorpoDeProvaChartDataSet" uuid="320307a6-07d6-4d08-8f42-0537af75c157">
<dataSourceExpression><![CDATA[$P{CorpoDeProvaChartCollectionBeanParam}]]></dataSourceExpression>
</datasetRun>
</dataset>
<xySeries autoSort="true">
<seriesExpression><![CDATA[$F{serie}]]></seriesExpression>
<xValueExpression><![CDATA[$F{days}]]></xValueExpression>
<yValueExpression><![CDATA[$F{fck}]]></yValueExpression>
<labelExpression><![CDATA["TEst"]]></labelExpression>
</xySeries>
</xyDataset>
<linePlot>
<plot/>
<categoryAxisFormat>
<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
</categoryAxisFormat>
<valueAxisFormat>
<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
</valueAxisFormat>
</linePlot>
</xyLineChart>
<textField>
<reportElement x="143" y="111" width="100" height="30" uuid="a6f5c887-cac8-4304-b8d5-8b9bb492ee39"/>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
</band>
Я пытался изменить свой код следующим образом, но это просто дает мне ошибку:
...
<categoryAxisFormat>
<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
<categoryAxisLabelExpression><![CDATA["Days"]]></categoryAxisLabelExpression>
</categoryAxisFormat>
<valueAxisFormat>
<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
<valueAxisLabelExpression><![CDATA["fck"]]</valueAxisLabelExpression>
</valueAxisFormat>
...
Также я не смог найти ничего на вкладке свойств диаграммы Jaspersoft Studio, которая бы сработала. И любая ссылка, которую я мог найти, указывает на свойства valueAxisLabelExpression
и valueAxisFormat
, но я не знаю, как их установить.
Дополнительная информация:
- Я использую Eclipse IDE
- Мой отчет заполнен
subDataSets
с JRBeanCollectionDataSource
class
Подводя итог, я хочу знать, как поставить label
по осям X и Y XYLineChart
в JasperReport.
Спасибо всем за помощь.