Повторение графа Jasper Report в iReport - PullRequest
2 голосов
/ 05 марта 2012

У меня есть линейный график в iReport, который постепенно повторяется на каждой странице, то есть, если график содержит 30 пар х / у (это динамично), в отчете будет 30 страниц, из которых первая будет иметь только одно значение, 2-е два значения и так далее. Только последний будет содержать полный график.

Вопросы "Диаграмма повторяется много раз" и "Проблема с графиком с использованием JasperReport" и "Как напечатать общий итог только на последней странице очень длинной сообщить? " не не решить мою проблему. Я понимаю, что если поместить диаграмму в раздел «Детали», она будет повторяться, но если поместить ее в разделы «Сводка», «Нижний колонтитул», «LastPageFooter», «Заголовок» и т. Д., Отобразится только одно значение. То же самое, когда я помещаю его в раздел «Подробности» и использую <printWhenExpression>.

Мой код:

<?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="nodes-allarmipersistenti" language="groovy" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <field name="day" class="java.lang.Number"/>
    <field name="month" class="java.lang.String"/>
    <field name="year" class="java.lang.String"/>
    <field name="dsunita" class="java.lang.String"/>
    <field name="valueNumber" class="java.lang.Number"/>
    <field name="logo" class="java.lang.String"/>
    <field name="today" class="java.lang.String"/>
    <field name="option" class="java.lang.String"/>
    <title>
        <band height="89">
            <staticText>
                <reportElement mode="Opaque" x="0" y="67" width="424" height="22" backcolor="#CCFFFF"/>
                <textElement textAlignment="Right" verticalAlignment="Middle" markup="none">
                    <font size="10" isBold="true" pdfFontName="Helvetica-Bold" isPdfEmbedded="true"/>
                </textElement>
                <text><![CDATA[GRAFICO PARAMETRO]]></text>
            </staticText>
            <staticText>
                <reportElement x="600" y="0" width="100" height="38"/>
                <textElement verticalAlignment="Middle"/>
                <text><![CDATA[Stampato in data]]></text>
            </staticText>
            <textField>
                <reportElement x="700" y="0" width="102" height="38"/>
                <textElement textAlignment="Right" verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$F{today}]]></textFieldExpression>
            </textField>
            <image>
                <reportElement x="0" y="0" width="100" height="67"/>
                <imageExpression><![CDATA[$F{logo}]]></imageExpression>
            </image>
            <staticText>
                <reportElement x="700" y="38" width="102" height="29"/>
                <textElement textAlignment="Right"/>
                <text><![CDATA[MaRe - Telecontrollo]]></text>
            </staticText>
            <textField>
                <reportElement mode="Opaque" x="424" y="67" width="378" height="22" backcolor="#CCFFFF"/>
                <textElement verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[' ' + $F{option}]]></textFieldExpression>
            </textField>
        </band>
    </title>
    <lastPageFooter>
        <band height="387" splitType="Stretch">
            <xyLineChart>
                <chart evaluationTime="Page">
                    <reportElement x="0" y="0" width="802" height="387"/>
                    <chartTitle/>
                    <chartSubtitle/>
                    <chartLegend/>
                </chart>
                <xyDataset>
                    <dataset incrementType="Report"/>
                    <xySeries>
                        <seriesExpression><![CDATA["Unità " + $F{dsunita}]]></seriesExpression>
                        <xValueExpression><![CDATA[$F{day}]]></xValueExpression>
                        <yValueExpression><![CDATA[$F{valueNumber}]]></yValueExpression>
                    </xySeries>
                </xyDataset>
                <linePlot>
                    <plot/>
                </linePlot>
            </xyLineChart>
        </band>
    </lastPageFooter>
</jasperReport>

Источником данных здесь является JRBeanCollectionDataSource.

1 Ответ

4 голосов
/ 06 марта 2012

Неправильно помещать его в полосу детализации (как вы заметили).Положить его в заголовок или резюме будет работать.Ваш выбор evaluationTime="Page" не выглядит правильным.Попробуйте изменить это на evaluationTime="Report"

...