2011-07-08 177 views
7

我已經生成了一份報告(帶有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

如果我理解你的問題的權利,你只想顯示一次圖表。如果是這樣,請將圖表放入摘要標記標記而不是datail標記。 – lkdg

+0

@ lkdg,謝謝:) – rym

回答

16

在碧玉報告,所有你的地方解決了這個問題在細節帶中重複出現在源中的次數。

如果你想要顯示任何東西(不僅僅是圖表)一次,避免細節帶。例如,您可以將它放在摘要部分。

更新:正如其他人指出的,我已經將我的答案稍微擴展了一點。

+0

從最終用戶的角度來看,這非常不直觀。我首先努力了幾個小時,確認將圖表移動到「摘要」部分可解決重複問題。 – AlexVPerl

5

我也曾經遇到類似這樣的問題。這是因爲你的數據會循環,導致數據冗餘。你需要做的是去'打印時表達式'屬性和設置您的變量報告計數爲1.這是它看起來,$V{REPORT_COUNT}==1。它只會在您的報告中顯示一次。

1

我使用$V{PAGE_NUMBER} == 1作爲值'當表達式'打印時'因此它只能在第一頁上顯示。