JasperReports:子报表多次呈现,导致重复的页面 [英] JasperReports: Subreport renders multiple times, causing duplicate pages

查看:228
本文介绍了JasperReports:子报表多次呈现,导致重复的页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用JasperReports 来生成一个使用两个单独查询的Web应用程序的图表。我的主要JRXML 生成图表,并且在 细节 频带中包含一个子报表来生成表格。然而,当它呈现时,子报表似乎被渲染多次(12是准确的),这导致生成的报告在12页上是相同的图表(彼此完全重复)。这是通过在线应用程序和 iReport 发生的。



我的主要JRXML ,subreport JRXML 和报告生成代码如下(某些细节已被删除,因为NDA的原因)。



任何关于什么问题的洞察力或想法将是非常有帮助的。 / p>

主要的JRXML

 <?xml version =1.0encoding =UTF-8?> 
< jasperReport xmlns =http://jasperreports.sourceforge.net/jasperreportsxmlns:xsi =http://www.w3.org/2001/XMLSchema-instancexsi:schemaLocation =http: //jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsdname =reportlanguage =groovypageWidth =842pageHeight =595orientation =Landscape columnWidth =555leftMargin =20rightMargin =20topMargin =20bottomMargin =20>
< property name =ireport.zoomvalue =1.0/>
< property name =ireport.xvalue =0/>
< property name =ireport.yvalue =0/>
< parameter name =SUBREPORT_DIRclass =java.lang.StringisForPrompting =false>
< defaultValueExpression><![CDATA [< PATH_TO_SUBREPORT>]]>< / defaultValueExpression>
< / parameter>
< parameter name =paramclass =java.util.Collection/>
< queryString language =SQL>
<![CDATA [< DATABASE_QUERY>]]>
< / queryString>
< field name =FIELD1class =java.lang.Integer/>
< field name =FIELD2class =java.sql.Date/>
< field name =FIELD3class =java.math.BigDecimal/>
< field name =FIELD4class =java.math.BigDecimal/>
< field name =FIELD5class =java.math.BigDecimal/>
< background>
< band splitType =Stretch/>
< / background>
< title>
< band height =10splitType =Stretch/>
< / title>
< pageHeader>
< band height =5splitType =Stretch/>
< / pageHeader>
< columnHeader>
< band height =5splitType =Stretch/>
< / columnHeader>
< detail>
< band height =513splitType =Stretch>
< lineChart>
< chart>
< reportElement positionType =Floatx =51y =0width =680height =400/>
< chartTitle />
< chartSubtitle />
< chartLegend />
< / chart>
< categoryDataset>
< categorySeries>
< seriesExpression><![CDATA [FIELD1]]>< / seriesExpression>
< categoryExpression><![CDATA [$ F {f1}]]>< / categoryExpression>
< valueExpression><![CDATA [$ F {f2}]]>< / valueExpression>
< / categorySeries>
< categorySeries>
< seriesExpression><![CDATA [FIELD2]]>< / seriesExpression>
< categoryExpression><![CDATA [$ F {f1}]]>< / categoryExpression>
< valueExpression><![CDATA [$ F {f2}]]>< / valueExpression>
< / categorySeries>
< categorySeries>
< seriesExpression><![CDATA [FIELD3]]>< / seriesExpression>
< categoryExpression><![CDATA [$ F {f1}]]>< / categoryExpression>
< valueExpression><![CDATA [$ F {f2}]]>< / valueExpression>
< / categorySeries>
< / categoryDataset>
< linePlot>
< plot labelRotation = - 90.0/>
< categoryAxisFormat labelRotation = - 90.0>
< axisFormat>
< tickLabelFont>
< font size =12/>
< / tickLabelFont>
< / axisFormat>
< / categoryAxisFormat>
< rangeAxisMinValueExpression><![CDATA [0]]>< / rangeAxisMinValueExpression>
< rangeAxisMaxValueExpression><![CDATA [101]]>< / rangeAxisMaxValueExpression>
< / linePlot>
< / lineChart>
< subreport>
< reportElement x =377y =413width =425height =100/>
< subreportParameter name =param>
< subreportParameterExpression><![CDATA [$ P {param}]]>< / subreportParameterExpression>
< / subreportParameter>
< connectionExpression><![CDATA [$ P {REPORT_CONNECTION}]]>< / connectionExpression>
< subreportExpression><![CDATA [$ P {SUBREPORT_DIR} +testReport.jasper]]>< / subreportExpression>
< / subreport>
< / band>
< / detail>
< columnFooter>
< band height =5splitType =Stretch/>
< / columnFooter>
< pageFooter>
< band height =15splitType =Stretch>
< textField>
< reportElement mode =不透明x =3y =2width =759height =13backcolor =#E6E6E6/>
< textElement textAlignment =Right/>
< textFieldExpression><![CDATA [Page+ $ V {PAGE_NUMBER} +of]]>< / textFieldExpression>
< / textField>
< textField评估时间=报告>
< reportElement mode =不透明x =762y =2width =40height =13backcolor =#E6E6E6/>
< textElement />
< textFieldExpression><![CDATA [+ $ V {PAGE_NUMBER}]]>< / textFieldExpression>
< / textField>
< textField pattern =EEEEE dd MMMMM yyyy>
< reportElement x =3y =0width =100height =13/>
< textElement />
< textFieldExpression><![CDATA [new SimpleDateFormat(MM-dd-yyyy)。format(
new java.util.Date())]]>< / textFieldExpression>
< / textField>
< / band>
< / pageFooter>
< summary>
< band height =10splitType =Stretch/>
< / summary>
< / jasperReport>

Sub Report JRXML

 <?xml version =1.0encoding =UTF-8?> 
< jasperReport xmlns =http://jasperreports.sourceforge.net/jasperreportsxmlns:xsi =http://www.w3.org/2001/XMLSchema-instancexsi:schemaLocation =http: //jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsdname =evcas_sublanguage =groovypageWidth =450pageHeight =150columnWidth =10 leftMargin =10rightMargin =10topMargin =10bottomMargin =10>
< property name =ireport.zoomvalue =1.0/>
< property name =ireport.xvalue =0/>
< property name =ireport.yvalue =0/>
< style name =table>
< box>
< pen lineWidth =1.0lineColor =#000000/>
< / box>
< / style>
< style name =table_THmode =不透明backcolor =#0000FF>
< box>
< pen lineWidth =0.5lineColor =#000000/>
< / box>
< / style>
< style name =table_CHmode =不透明backcolor =#BFBFFF>
< box>
< pen lineWidth =0.5lineColor =#000000/>
< / box>
< / style>
< style name =table_TDmode =不透明backcolor =#FFFFFF>
< box>
< pen lineWidth =0.5lineColor =#000000/>
< / box>
< conditionalStyle>
< conditionExpression><![CDATA [new Boolean($ V {REPORT_COUNT} .intValue()%2 == 0)]]>< / conditionExpression>
< style backcolor =#EFEFFF/>
< / conditionalStyle>
< / style>
< style name =Crosstab Data TexthAlign =Center/>
< parameter name =paramclass =java.util.Collection/>
< queryString>
<![CDATA [< DATABASE_QUERY>]]>
< / queryString>
< field name =FIELD1class =java.lang.String/>
< field name =FIELD2class =java.math.BigDecimal/>
< field name =FIELD3class =java.math.BigDecimal/>
< field name =FIELD4class =java.math.BigDecimal/>
< field name =FIELD5class =java.math.BigDecimal/>
< field name =FIELD6class =java.math.BigDecimal/>
< field name =FIELD7class =java.math.BigDecimal/>
< field name =FIELD8class =java.math.BigDecimal/>
< background>
< band splitType =Stretch/>
< / background>
< title>
< band height =5splitType =Stretch/>
< / title>
< pageHeader>
< band height =5/>
< / pageHeader>
< columnHeader>
< band height =12>
< textField>
< reportElement style =table_THx =0y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =9/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [FIELD1]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_THx =50y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =9/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [FIELD2]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_THx =100y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =9/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [FIELD3]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_THx =150y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =9/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [FIELD4]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_THx =200y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =9/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [FIELD5]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_THx =250y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =9/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [FIELD6]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_THx =300y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =9/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [FIELD7]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_THx =350y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =9/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [FIELD8]]>< / textFieldExpression>
< / textField>
< / band>
< / columnHeader>
< detail>
< band height =12>
< textField>
< reportElement style =table_CHx =0y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =8/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [$ F {f1}]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_CHx =50y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =8/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [$ F {f2}]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_CHx =100y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =8/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [$ F {f3}]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_CHx =150y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =8/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [$ F {f4}]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_CHx =200y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =8/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [$ F {f5}]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_CHx =250y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =8/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [$ F {f6}]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_CHx =300y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =8/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [$ F {f7}]]>< / textFieldExpression>
< / textField>
< textField>
< reportElement style =table_CHx =350y =0width =50height =12backcolor =#FFFFFF/>
< textElement>
< font size =8/>
< paragraph leftIndent =2/>
< / textElement>
< textFieldExpression><![CDATA [$ F {f8}]]>< / textFieldExpression>
< / textField>
< / band>
< / detail>
< columnFooter>
< band height =5splitType =Stretch/>
< / columnFooter>
< pageFooter>
< band height =5splitType =Stretch/>
< / pageFooter>
< / jasperReport>

呈现代码:

  String strFileName =< FILENAME>>; 
文件jrxml = new File(strFileName);
InputStream iStream = new FileInputStream(jrxml);
JasperReport objJReport = JasperCompileManager.compileReport(iStream);
JasperPrint objJPrint = JasperFillManager.fillReport(objJReport,hashMap,datasource.getConnection());
JasperExportManager.exportReportToPdfStream(objJPrint,os);


解决方案

在数据集中的每条记录中打印一个详细信息。所以如果您的数据库查询返回12行,您将获得12个副本的详细信息。每个频段都使用单行的数据,但是对于您使用图表和子报表来显示数据,这是无关紧要的。



为了避免重复,只要放您的图表和子报表进入不同的频段。我会去列标题或页脚,但除细节之外的任何内容都可以正常工作。


I am using JasperReports to generate a graph and table for a web application using two separate queries. My main JRXML generates the graph, and I include a subreport in the Detail band to generate the table. However, when it renders, the subreport seems to get rendered multiple times (12 to be exact), which results in the generated report being the same graph and table on 12 pages (exact duplicates of each other). This happens both through the online application and iReport.

My main JRXML, subreport JRXML, and report generation code are below (some details have been removed for NDA reasons).

Any insight or ideas on what the issue is would be very helpful.

Main JRXML:

    <?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="report" language="groovy" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="555" 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"/>
        <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
            <defaultValueExpression><![CDATA["<<PATH_TO_SUBREPORT>>"]]></defaultValueExpression>
        </parameter>
        <parameter name="param" class="java.util.Collection" />     
     <queryString language="SQL">
            <![CDATA[<<DATABASE_QUERY>>]]>
        </queryString>
        <field name="FIELD1" class="java.lang.Integer"/>
        <field name="FIELD2" class="java.sql.Date"/>
        <field name="FIELD3" class="java.math.BigDecimal"/>
        <field name="FIELD4" class="java.math.BigDecimal"/>
        <field name="FIELD5" class="java.math.BigDecimal"/>
        <background>
            <band splitType="Stretch"/>
        </background>
        <title>
            <band height="10" splitType="Stretch"/>
        </title>
        <pageHeader>
            <band height="5" splitType="Stretch"/>
        </pageHeader>
        <columnHeader>
            <band height="5" splitType="Stretch"/>
        </columnHeader>
        <detail>
            <band height="513" splitType="Stretch">
                <lineChart>
                    <chart>
                        <reportElement positionType="Float" x="51" y="0" width="680" height="400"/>
                        <chartTitle/>
                        <chartSubtitle/>
                        <chartLegend/>
                    </chart>
                    <categoryDataset>
                        <categorySeries>
                            <seriesExpression><![CDATA["FIELD1"]]></seriesExpression>
                            <categoryExpression><![CDATA[$F{f1}]]></categoryExpression>
                            <valueExpression><![CDATA[$F{f2}]]></valueExpression>
                        </categorySeries>
                        <categorySeries>
                            <seriesExpression><![CDATA["FIELD2"]]></seriesExpression>
                            <categoryExpression><![CDATA[$F{f1}]]></categoryExpression>
                            <valueExpression><![CDATA[$F{f2}]]></valueExpression>
                        </categorySeries>
                        <categorySeries>
                            <seriesExpression><![CDATA["FIELD3"]]></seriesExpression>
                            <categoryExpression><![CDATA[$F{f1}]]></categoryExpression>
                            <valueExpression><![CDATA[$F{f2}]]></valueExpression>
                        </categorySeries>
                    </categoryDataset>
                    <linePlot>
                        <plot labelRotation="-90.0"/>
                        <categoryAxisFormat labelRotation="-90.0">
                            <axisFormat>
                                <tickLabelFont>
                                    <font size="12"/>
                                </tickLabelFont>
                            </axisFormat>
                        </categoryAxisFormat>
                        <rangeAxisMinValueExpression><![CDATA[0]]></rangeAxisMinValueExpression>
                        <rangeAxisMaxValueExpression><![CDATA[101]]></rangeAxisMaxValueExpression>
                    </linePlot>
                </lineChart>
                <subreport>
                    <reportElement x="377" y="413" width="425" height="100"/>
                    <subreportParameter name="param">
                        <subreportParameterExpression><![CDATA[$P{param}]]></subreportParameterExpression>
                    </subreportParameter>
                    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                    <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "testReport.jasper"]]></subreportExpression>
                </subreport>
            </band>
        </detail>
        <columnFooter>
            <band height="5" splitType="Stretch"/>
        </columnFooter>
        <pageFooter>
            <band height="15" splitType="Stretch">
                <textField>
                    <reportElement mode="Opaque" x="3" y="2" width="759" height="13" backcolor="#E6E6E6"/>
                    <textElement textAlignment="Right"/>
                    <textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
                </textField>
                <textField evaluationTime="Report">
                    <reportElement mode="Opaque" x="762" y="2" width="40" height="13" backcolor="#E6E6E6"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
                </textField>
                <textField pattern="EEEEE dd MMMMM yyyy">
                    <reportElement x="3" y="0" width="100" height="13"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[new SimpleDateFormat("MM-dd-yyyy").format(
    new java.util.Date())]]></textFieldExpression>
                </textField>
            </band>
        </pageFooter>
        <summary>
            <band height="10" splitType="Stretch"/>
        </summary>
    </jasperReport>

Sub Report JRXML:

<?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="evcas_sub" language="groovy" pageWidth="450" pageHeight="150" columnWidth="10" leftMargin="10" rightMargin="10" topMargin="10" bottomMargin="10">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <style name="table">
        <box>
            <pen lineWidth="1.0" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TH" mode="Opaque" backcolor="#0000FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_CH" mode="Opaque" backcolor="#BFBFFF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TD" mode="Opaque" backcolor="#FFFFFF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
        <conditionalStyle>
            <conditionExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue()%2==0)]]></conditionExpression>
            <style backcolor="#EFEFFF"/>
        </conditionalStyle>
    </style>
    <style name="Crosstab Data Text" hAlign="Center"/>
    <parameter name="param" class="java.util.Collection" />
    <queryString>
        <![CDATA[<<DATABASE_QUERY>>]]>
    </queryString>
    <field name="FIELD1" class="java.lang.String"/>
    <field name="FIELD2" class="java.math.BigDecimal"/>
    <field name="FIELD3" class="java.math.BigDecimal"/>
    <field name="FIELD4" class="java.math.BigDecimal"/>
    <field name="FIELD5" class="java.math.BigDecimal"/>
    <field name="FIELD6" class="java.math.BigDecimal"/>
    <field name="FIELD7" class="java.math.BigDecimal"/>
    <field name="FIELD8" class="java.math.BigDecimal"/>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="5" splitType="Stretch"/>
    </title>
    <pageHeader>
        <band height="5"/>
    </pageHeader>
    <columnHeader>
        <band height="12">
            <textField>
                <reportElement style="table_TH" x="0" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="9"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA["FIELD1"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TH" x="50" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="9"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA["FIELD2"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TH" x="100" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="9"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA["FIELD3"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TH" x="150" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="9"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA["FIELD4"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TH" x="200" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="9"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA["FIELD5"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TH" x="250" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="9"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA["FIELD6"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TH" x="300" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="9"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA["FIELD7"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_TH" x="350" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="9"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA["FIELD8"]]></textFieldExpression>
            </textField>
        </band>
    </columnHeader>
    <detail>
        <band height="12">
            <textField>
                <reportElement style="table_CH" x="0" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="8"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{f1}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_CH" x="50" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="8"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{f2}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_CH" x="100" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="8"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{f3}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_CH" x="150" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="8"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{f4}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_CH" x="200" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="8"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{f5}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_CH" x="250" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="8"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{f6}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_CH" x="300" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="8"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{f7}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement style="table_CH" x="350" y="0" width="50" height="12" backcolor="#FFFFFF"/>
                <textElement>
                    <font size="8"/>
                    <paragraph leftIndent="2"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{f8}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <columnFooter>
        <band height="5" splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band height="5" splitType="Stretch"/>
    </pageFooter>
</jasperReport>

Rendering Code:

String strFileName = "<<FILENAME>>";
File jrxml = new File(strFileName);
InputStream iStream = new FileInputStream(jrxml);
JasperReport objJReport = JasperCompileManager.compileReport(iStream);
JasperPrint objJPrint = JasperFillManager.fillReport(objJReport, hashMap, datasource.getConnection());
JasperExportManager.exportReportToPdfStream(objJPrint, os);

解决方案

One detail band is printed per record in your data set. So if your database query returns 12 rows, you get 12 copies of the detail band. Each band uses data from a single row, but this is inconsequential for you as you are using a chart and subreport to display the data.

To avoid this repetition, just put your chart and subreport into a different band. I'd go for column header or footer, but anything except detail will work.

这篇关于JasperReports:子报表多次呈现,导致重复的页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆