我已经生成了一个报告(使用JasperReport)。我的问题是图表重复,我有一个图表,报告包含22页!有什么问题?
这是我的报告:
<?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="report2" language="groovy" pageWidth="595" pageHeight="842" 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"/>
<subDataset name="New Dataset 1">
<parameter name="SQL" class="java.lang.String"/>
<parameter name="Titre" class="java.lang.String">
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[$P!{SQL}]]>
</queryString>
<field name="nb" class="java.lang.Long"/>
<field name="champ1" class="java.lang.String"/>
<field name="champ2" class="java.lang.String"/>
</subDataset>
<parameter name="SQL" class="java.lang.String">
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
<parameter name="Titre" class="java.lang.String"/>
<queryString>
<![CDATA[select id from jiraissue]]>
</queryString>
<field name="id" class="java.math.BigDecimal"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="46" splitType="Stretch">
<textField>
<reportElement x="89" y="15" width="180" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$P{Titre}]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="35" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="13" splitType="Stretch"/>
</columnHeader>
<detail>
<band height="185" splitType="Stretch">
<stackedBar3DChart>
<chart>
<reportElement x="57" y="16" width="420" height="165"/>
<chartTitle/>
<chartSubtitle/>
<chartLegend/>
</chart>
<categoryDataset>
<dataset>
<datasetRun subDataset="New Dataset 1">
<datasetParameter name="SQL">
<datasetParameterExpression><![CDATA[$P{SQL}]]></datasetParameterExpression>
</datasetParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
</dataset>
<categorySeries>
<seriesExpression><![CDATA[$F{champ2}]]></seriesExpression>
<categoryExpression><![CDATA[$F{champ1}]]></categoryExpression>
<valueExpression><![CDATA[$F{nb}]]></valueExpression>
</categorySeries>
</categoryDataset>
<bar3DPlot>
<plot/>
<itemLabel color="#000000" backgroundColor="#FFFFFF"/>
<categoryAxisFormat>
<axisFormat>
<labelFont/>
<tickLabelFont/>
</axisFormat>
</categoryAxisFormat>
<valueAxisFormat>
<axisFormat>
<labelFont/>
<tickLabelFont/>
</axisFormat>
</valueAxisFormat>
</bar3DPlot>
</stackedBar3DChart>
</band>
</detail>
<columnFooter>
<band height="24" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="20" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="22" splitType="Stretch"/>
</summary>
更新 我已经通过将图表移动到摘要部分来解决了问题:)
答案 0 :(得分:17)
在Jasper报告中,您在细节带中放置的所有内容都会重复出现在源中。
如果您想只显示一次(不仅仅是图表),请避开细节带。 例如,您可以将其放在摘要部分中。
更新:正如其他人指出的那样,我已经扩展了我的答案。
答案 1 :(得分:6)
我之前也面对同样的问题。这是因为您的数据将循环导致数据冗余。您需要做的是在属性中转到“在表达时打印”并将变量报告计数设置为1.这就是它的外观,$V{REPORT_COUNT}==1
。它只会在您的报告中显示一次。
答案 2 :(得分:1)
我使用$V{PAGE_NUMBER} == 1
作为的值''在表达式时打印,因此强制它仅出现在第一页上。