创建分组条形图或折线图

时间:2014-07-09 02:23:58

标签: charts jasper-reports

我正在使用 Jaspersoft Studio 5.6 ,尝试创建一个基于分组参数显示多个XY(或条形)图表的报告。我把原始数据简化为以下内容,但我仍然无法弄明白。

DATA
+------+------+-------+
| xrow | yrow | group |
+------+------+-------+
|    1 |   11 |     1 |
|    2 |   12 |     1 |
|    3 |   10 |     1 |
|    1 |    5 |     2 |
|    2 |   10 |     2 |
|    3 |   14 |     2 |
+------+------+-------+

这是我的XML代码:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version last-->
<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="group3" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="cdd6d2cf-7c0c-4d79-8cfe-a4f1e04da233">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Office"/>
    <queryString language="SQL">
        <![CDATA[SELECT maintenance.test.xrow,
    maintenance.test.yrow,
    maintenance.test.group
FROM maintenance.test]]>
    </queryString>
    <field name="xrow" class="java.lang.Integer">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <field name="yrow" class="java.lang.Integer">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <field name="group" class="java.lang.Integer">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <sortField name="group"/>
    <sortField name="xrow"/>
    <group name="Group1">
        <groupExpression><![CDATA[$F{group}]]></groupExpression>
        <groupHeader>
            <band height="190">
                <barChart>
                    <chart evaluationTime="Report">
                        <reportElement x="40" y="0" width="460" height="190" uuid="582be7ed-4b48-4d55-a2b6-1295290d34e3"/>
                        <chartTitle/>
                        <chartSubtitle/>
                        <chartLegend/>
                    </chart>
                    <categoryDataset>
                        <dataset resetType="Group" resetGroup="Group1"/>
                        <categorySeries>
                            <seriesExpression><![CDATA["SERIES 1"]]></seriesExpression>
                            <categoryExpression><![CDATA[$F{xrow}]]></categoryExpression>
                            <valueExpression><![CDATA[$F{yrow}]]></valueExpression>
                        </categorySeries>
                    </categoryDataset>
                    <barPlot>
                        <plot/>
                        <itemLabel/>
                        <categoryAxisFormat>
                            <axisFormat/>
                        </categoryAxisFormat>
                        <valueAxisFormat>
                            <axisFormat/>
                        </valueAxisFormat>
                    </barPlot>
                </barChart>
            </band>
        </groupHeader>
    </group>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="79" splitType="Stretch"/>
    </title>
    <pageHeader>
        <band height="35" splitType="Stretch"/>
    </pageHeader>
</jasperReport>

我已为列&#34; group&#34;

创建了一个报告组

我将图表放在群组标题区域中。我已尝试设置&#34;重置&#34;到GROUP,以及REPORT(在图表向导中),结果没有变化。见下面的截图。

我不知道下一步该尝试什么。 Report screen shot

1 个答案:

答案 0 :(得分:2)

我仔细查看了图表属性,发现有一个名为评估时间的参数,将其从“报告”更改为该组的名称。或者更改以下内容..

<chart evaluationTime="Report">

<chart evaluationTime="Group" evaluationGroup="group">

使用组头\页脚中的图表,这将允许图表仅显示当前组数据。