Jasper HTML5 按结果集分组的多线图
Jasper HTML5 multiline chart with group by result set
我有 sql 做双重分组的查询(第 1 列和第 2 列),结果集采用以下格式
我正在尝试按以下格式在 jasper studio/ireport 中创建多线 HTML5 图表:
- xAxis(Category) 将具有 column2 值(不同)。在此示例中,xAxis
上的三个值
- yAxis(度量值)将有第 3 列值,对于第 1 列中的每个值,它应该有一行包含来自第 3 列的数据。所以第 1 列中有 4 个不同值的四行。
这个结果集可以实现吗?我试图创建组,为措施添加条件但没有结果。
你需要做的就是使用column2作为rows/category级别,column1作为columns/series级别。
像这样:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Html5Chart" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<field name="column1" class="java.lang.String"/>
<field name="column2" class="java.lang.String"/>
<field name="column3" class="java.lang.Double"/>
<summary>
<band height="500">
<componentElement>
<reportElement x="0" y="0" width="802" height="500"/>
<hc:chart xmlns:hc="http://jaspersoft.com/highcharts" xsi:schemaLocation="http://jaspersoft.com/highcharts http://jaspersoft.com/schema/highcharts.xsd" type="Line">
<multiAxisData>
<multiAxisDataset>
</multiAxisDataset>
<dataAxis axis="Rows">
<axisLevel name="column2">
<labelExpression><![CDATA["column 2"]]></labelExpression>
<axisLevelBucket class="java.lang.String">
<bucketExpression><![CDATA[$F{column2}]]></bucketExpression>
</axisLevelBucket>
</axisLevel>
</dataAxis>
<dataAxis axis="Columns">
<axisLevel name="column1">
<labelExpression><![CDATA["column 1"]]></labelExpression>
<axisLevelBucket class="java.lang.String">
<bucketExpression><![CDATA[$F{column1}]]></bucketExpression>
</axisLevelBucket>
</axisLevel>
</dataAxis>
<multiAxisMeasure name="column3" class="java.lang.Double" calculation="Nothing">
<labelExpression><![CDATA["column 3"]]></labelExpression>
<valueExpression>$F{column3}</valueExpression>
</multiAxisMeasure>
</multiAxisData>
</hc:chart>
</componentElement>
</band>
</summary>
</jasperReport>
我有 sql 做双重分组的查询(第 1 列和第 2 列),结果集采用以下格式
我正在尝试按以下格式在 jasper studio/ireport 中创建多线 HTML5 图表:
- xAxis(Category) 将具有 column2 值(不同)。在此示例中,xAxis 上的三个值
- yAxis(度量值)将有第 3 列值,对于第 1 列中的每个值,它应该有一行包含来自第 3 列的数据。所以第 1 列中有 4 个不同值的四行。
这个结果集可以实现吗?我试图创建组,为措施添加条件但没有结果。
你需要做的就是使用column2作为rows/category级别,column1作为columns/series级别。
像这样:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Html5Chart" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<field name="column1" class="java.lang.String"/>
<field name="column2" class="java.lang.String"/>
<field name="column3" class="java.lang.Double"/>
<summary>
<band height="500">
<componentElement>
<reportElement x="0" y="0" width="802" height="500"/>
<hc:chart xmlns:hc="http://jaspersoft.com/highcharts" xsi:schemaLocation="http://jaspersoft.com/highcharts http://jaspersoft.com/schema/highcharts.xsd" type="Line">
<multiAxisData>
<multiAxisDataset>
</multiAxisDataset>
<dataAxis axis="Rows">
<axisLevel name="column2">
<labelExpression><![CDATA["column 2"]]></labelExpression>
<axisLevelBucket class="java.lang.String">
<bucketExpression><![CDATA[$F{column2}]]></bucketExpression>
</axisLevelBucket>
</axisLevel>
</dataAxis>
<dataAxis axis="Columns">
<axisLevel name="column1">
<labelExpression><![CDATA["column 1"]]></labelExpression>
<axisLevelBucket class="java.lang.String">
<bucketExpression><![CDATA[$F{column1}]]></bucketExpression>
</axisLevelBucket>
</axisLevel>
</dataAxis>
<multiAxisMeasure name="column3" class="java.lang.Double" calculation="Nothing">
<labelExpression><![CDATA["column 3"]]></labelExpression>
<valueExpression>$F{column3}</valueExpression>
</multiAxisMeasure>
</multiAxisData>
</hc:chart>
</componentElement>
</band>
</summary>
</jasperReport>