在Jasper报告中插入轴标签



我正在用Jasper Reports学习Java,并试图用XYLineChart创建一个报告

我的报告还可以,所有的数据都显示出我想要的方式。我的图表正在绘制所有数据,但X轴和Y轴没有名称(label(,所以我无法"知道"数据是什么。

我想把我的轴的名字放在图表里。我读了一些书,在一本书中发现了这一点:

折线图也有两个轴。可以使用类别AxisLabelExpression和值AxisLabelExpression来控制它们的标签。。。

这本书给出了以下语法:

<!ELEMENT linePlot (plot, categoryAxisLabelExpression?,
categoryAxisFormat?, valueAxisLabelExpression?, valueAxisFormat?)>
<!ATTLIST linePlot
isShowLines (true | false) "true"
isShowShapes (true | false) "true">

jrxml完整的代码在我的GitHub:Report 中

下面是从上面的代码中提取的关于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的图表属性选项卡中找不到任何能起作用的东西。我可以找到任何指向valueAxisLabelExpressionvalueAxisFormat属性的引用,但我不知道如何设置它们。

附加信息:

  1. 我正在使用Eclipse IDE
  2. 我的报告中填写了subDataSetsJRBeanCollectionDataSourceclass

总结一下,我想知道如何在JasperReport中将label放在XYLineChart的X轴和Y轴上。

谢谢大家的帮助。

经过一些尝试和阅读,我做了我想要的。

在我的第一次尝试中,我使用了这样的chart代码:

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

但正确的sintax是:

<categoryAxisLabelExpression><![CDATA["Days"]]></categoryAxisLabelExpression>
<categoryAxisFormat>
<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
</categoryAxisFormat>
<valueAxisLabelExpression><![CDATA["fck (MPa)"]]></valueAxisLabelExpression>
<valueAxisFormat>
<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
</valueAxisFormat>

所以我只需要更改代码中的行顺序。谢谢大家。。。

最新更新