jasilva
jasilva

Reputation: 750

jasper reports, group data in bar chart

I need to create a report with total of activities in months. I am using JRBeanCollectionDataSource to fill data in report like

example1

Also I need to add a Bar Chart like

example2

In my jasper file, I have

<categoryDataset>
    <dataset incrementType="Column"/>
    <categorySeries>
        <seriesExpression><![CDATA["Complete"]]></seriesExpression>
        <categoryExpression><![CDATA["Complete"]]></categoryExpression>
        <valueExpression><![CDATA[$F{complete}]]></valueExpression>
        <labelExpression><![CDATA["Complete"]]></labelExpression>
    </categorySeries>
    <categorySeries>
        <seriesExpression><![CDATA["To do"]]></seriesExpression>
        <categoryExpression><![CDATA["To do"]]></categoryExpression>
        <valueExpression><![CDATA[$F{todo}]]></valueExpression>
        <labelExpression><![CDATA["To do"]]></labelExpression>
    </categorySeries>
    <categorySeries>
        <seriesExpression><![CDATA["Errors"]]></seriesExpression>
        <categoryExpression><![CDATA["Errors"]]></categoryExpression>
        <valueExpression><![CDATA[$F{errors}]]></valueExpression>
        <labelExpression><![CDATA["Errors"]]></labelExpression>
    </categorySeries>
</categoryDataset>

But I get this error:

error pic

Where I only get the last value of my query

can I group by month data? like in the second picture?

Upvotes: 1

Views: 2445

Answers (1)

Niyu
Niyu

Reputation: 11

The problem is in the categoryExpression property. Right now you have the same value as in seriesExpression. That's why a new category is created with only values for that series.

You should have something like the following:

<categorySeries>
    <seriesExpression><![CDATA["Complete"]]></seriesExpression>
    <categoryExpression><![CDATA["$F{MONTH}"]]></categoryExpression>
    <valueExpression><![CDATA[$F{complete}]]></valueExpression>
</categorySeries>
<categorySeries>
    <seriesExpression><![CDATA["To do"]]></seriesExpression>
    <categoryExpression><![CDATA["$F{MONTH}"]]></categoryExpression>
    <valueExpression><![CDATA[$F{todo}]]></valueExpression>
</categorySeries>
<categorySeries>
    <seriesExpression><![CDATA["Errors"]]></seriesExpression>
    <categoryExpression><![CDATA["$F{MONTH}"]]></categoryExpression>
    <valueExpression><![CDATA[$F{errors}]]></valueExpression>

Or whatever the Month field is named.

Upvotes: 1

Related Questions